V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
zypatroon
V2EX  ›  Linux

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

  •  
  •   zypatroon · Apr 3, 2012 · 6325 views
    This topic created in 5143 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   ·   Solana   ·   2566 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 14:56 · PVG 22:56 · LAX 07:56 · JFK 10:56
    ♥ Do have faith in what you're doing.