在Ubuntu系统中跳过带有非法字符的文件移动

时间:2014-03-03 05:33:44

标签: linux unix ubuntu filter operating-system

我正在移动Ubuntu系统中的一些文件,该系统目前正在文件夹中移动所有带扩展名的文件

以下是我正在使用的命令:

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

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

  • 如果文件包含“_”(下划线),我想跳过该文件移动。
  • 我想有一个参数标志,当0或1时,它会覆盖目的地的同名文件。

有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

  1.   

    如果文件包含“_”(下划线),我想跳过该文件移动。

    你可以试试这个

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

    ! -name '*_*'将跳过名称中包含“_”的所有文件。如果要检查多个非法字符,可以为每个字符添加一个测试(例如! -name '*_*')。

  2.   

    我想要一个参数标志,当0或1时,它将允许覆盖目的地的同名文件。

    • mv -n不会覆盖现有文件
    • mv -f在覆盖之前不提示