2014-03-03 31 views
0

我移动在Ubuntu系统,这是目前移动所有文件,带或不带扩展名的文件夹跳过非法字符的文件在Ubuntu系统移动

继一些文件是我使用的命令:

find /abc/xyz -maxdepth 1 -type f -exec mv {} /mno/pqr 

但现在我只想应用一些过滤器后,移动文件:

  • 如果文件中包含一个“_”(下划线),我想跳过该文件运动。
  • 我想有一个参数标志,当0或1时,它将启用覆盖目标中具有相同名称的文件。

有人能帮我吗?

回答

1
  1. 如果文件中包含一个 “_”(下划线),我想跳过该文件运动。

    你可以试试这个

    find /abc/xyz -maxdepth 1 -type f ! -name '*_*' -exec mv {} /mno/pqr 
    

    ! -name '*_*'将跳过这在他们的名字有一个 '_' 的所有文件。如果您有多个非法字符需要检查,您可以为每个字符添加一个测试(例如! -name '*_*')。

  2. 我想有一个参数标志,当0或1时,它将启用覆盖目标中具有相同名称的文件。

    • mv -n不覆盖
+0

+1之前覆盖现有文件

  • mv -f不提示。如何检查我是否有一组非法字符。其中之一是“_”。如何检查他人? –

  • +0

    @peeppeep您可能需要为每个非法字符添加一个测试,例如您为'*'所做的操作。 –

    +0

    感谢您的快速回复。你能帮我解决吗? http://stackoverflow.com/questions/22164358/getting-response-from-shell-command-to-java-code –

    相关问题