如何透過一個指令來尋找檔案並複製到不存在的資料夾?

如何透過一個指令來尋找檔案並複製到不存在的資料夾?

例如:

find /usr -type f -name "*.txt" -exec cp -r {} ~/txts/ \;

當我們有現有目錄 txt 時工作正常。

據我所知 -cp沒有flag來解決這個案件。也許我應該使用 rsync 或其他什麼?

答案1

好問題,你可以嘗試這個:
首先cd進入/usr,這是因為當你使用絕對路徑(如/usr)時find,我懷疑它會導致{}包含完整路徑。

find . -type f -a -name "*.txt" -a -exec install -D {} ~/texts/{} \;

當我運行此命令時,我收到以下錯誤訊息:

尋找:'./share/doc/google-chrome-stable':權限被拒絕

該錯誤訊息並不意味著操作總體失敗,它只是意味著find無法在./share/doc/google-chrome-stable目錄上運行命令。
但對我來說,所有其他檔案及其路徑都被複製,目錄路徑是根據需要建立的。

經進一步調查,錯誤原因是

% ls -al --directory ./share/doc/google-chrome-stable 
drwx------ 2 root root 4096 Aug 21 12:45 ./share/doc/google-chrome-stable

相關內容