2014-03-03 33 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 –

    相關問題