首頁>Ubuntu>source

我有一个帶pdf檔案子檔案夹的大檔案夹.我想获取所有pdf檔案(其中290个),並將它们放入一个目錄. (我认為那很簡單。)因此,我可以使用pdf程式pdfshuffle或類似的东西將它们連線成一个文件.我將檔案路徑和名稱放入檔案中: out.txt ,使用: find $(pwd) -iname '*.PDF' > out.txt out.txt包含如下路徑和檔案:

...
/home/user/Downloads/pedals/PEDALS/Electro-Harmonix/Small Stone Phaser.PDF
/home/user/Downloads/pedals/PEDALS/Electro-Harmonix/Dr. Quack (Doctor Q Melhorado).pdf
/home/user/Downloads/pedals/PEDALS/Marshall/Guv'Nor 1.PDF
/home/user/Downloads/pedals/PEDALS/Marshall/Guv'Nor 2.pdf
...

酷.所以我想我可以做到:

#!/bin/bash
input="out.txt"
while IFS= read -r line
do
  #echo "$line"
cp $line .
done < "$input"

但是它只能複製約36个pdf檔案,並且外壳程式說它不能統計檔案:

...
cp: cannot stat 'Boogie/Vtwin.pdf': No such file or directory
cp: cannot stat '/home/user/Downloads/pedals/PEDALS/Mesa': No such file or directory
...

檔案顯然在那儿,我可以查看它等。我的方法或指令碼有什麼問题?

最新回復
  • 5月前
    1 #

    使用 find可以轻松完成包含空格或其他有趣字元的檔案名 和 xargs .阅讀 man find xargs 並做類似的事情

    find . -mindepth 1 -type f -iname '*.pdf' -print0 | \
        xargs -0 -r echo mv -t $PWD
    

    驗證命令以及命令何時符合期望...
    删除" echo "以實際執行命令。

  • apt:安裝軟體包python3-venv後2004,pyvenv無法執行(指向錯誤的鏈接)
  • automount:USB儲存設備無故斷開連線