Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
zypatroon
V2EX  ›  Linux

如何批量删除文件名中 "\n\n" 前缀?

  •  
  •   zypatroon · Apr 3, 2012 · 6848 views
    This topic created in 5333 days ago, the information mentioned may be changed or developed.
    因为一个复制粘贴失误, 文件名中多了两个回车. ls 中察看到的是 ??ABC. 该怎么批量删除呢? 因为 \n 是系统回车字符. 似乎挺麻烦的.

    谢谢大家
    10 replies  •  1970-01-01 08:00:00 +08:00
    Kymair
    Kymair
    Apr 3, 2012
    1
    试试find? 注意不要把其他的文件删除了

    find . -name *ABC -exec rm {} \;
    lyxint
    lyxint
    Apr 3, 2012
    2
    find . -name "`echo -ne '\n\n*'`" -exec rm -rf {} \;
    Kymair
    Kymair
    Apr 3, 2012
    3
    另外一个方法是使用rm的interactive模式

    rm -i *ABC

    删掉那个文件后Ctrl-C即可
    zypatroon
    zypatroon
    OP
    Apr 3, 2012
    4
    @lyxint @Kymair 已成功~ 谢谢~~
    onesuper
    onesuper
    Apr 3, 2012
    5
    用rename可以批量把'\n\n'前缀删掉

    rename [from] [to] [files]


    $ rename ' #第一个回车
    > #第二个回车
    > ' '' *
    onesuper
    onesuper
    Apr 3, 2012
    6
    #是注释

    写成一行是

    rename '回车回车' '空' *
    zypatroon
    zypatroon
    OP
    Apr 3, 2012
    7
    @onesuper ~~~ 太牛叉了! 测试成功~
    mrmuxl
    mrmuxl
    Apr 8, 2012
    8
    mark
    yangg
    yangg
    Apr 9, 2012
    9
    @onesuper 用的什么 版本,我的mint下面是

    rename [ -v ] [ -n ] [ -f ] perlexpr [ files ]

    rename 's/\.bak$//' *.bak

    没你那种语法 。。。
    onesuper
    onesuper
    Apr 9, 2012
    10
    @yangg rename是有两个版本,我的fedora 15上是c语言版


    你这个是perl版


    man rename 第一行可以看到
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4467 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:28 · PVG 09:28 · LAX 17:28 · JFK 20:28
    ♥ Do have faith in what you're doing.