Bash

讀取文本文件並僅將這些文件移動到另一個文件夾

  • October 1, 2019

我有一個文件夾,裡面有 100 個日誌文件,其中一些有數據,一些沒有。我有一個腳本可以挑選出帶有數據的文件並將名稱保存在名為“goodfiles.txt”的文本文件中我想知道如何讀取文本文件中的文件並將它們移動到另一個文件夾。我試過這個:
cat /root/testing2/goodfiles.txt | xargs mv -f /root/testing2/moved/
但它給了我一個錯誤說

mv: 目標 (log1508.log) 必須是一個目錄才能將

mv: 目錄或多個文件移動到其中。

有人可以幫幫我嗎?

這是一種略有不同但概念上簡單的方法(避免管道):

for fileName in `cat goodfiles.txt`; do mv $fileName /root/testing2/moved/; done

我認為這有助於記住您可以使用 –replace 選項更改 xargs 替換的部分並指定替換字元串。否則,它將在末尾附加該行。

我能夠做大致相同的事情

cat filelist |xargs --replace='{}' mv {} ./targetdir/

你也許可以試試

cat /root/testing2/goodfiles.txt |xargs --replace '{}' /root/testing2/moved

引用自:https://unix.stackexchange.com/questions/544620