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

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

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

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

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

    rm -i *ABC

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

    rename [from] [to] [files]


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

    写成一行是

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

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

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

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


    你这个是perl版


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