Linux

將文件移回 2 個目錄

  • October 23, 2015
$ cat file
/tmp/foldera/folderb/folderc/file1
/tmp/folderc/folderd/foldere/file2
/tmp/folderf/folderg/folderh/file3

需要將此文件移動到

/tmp/foldera/
/tmp/folderc/
/tmp/folderf/

分別使用循環或任何簡單方便的方法來做到這一點。

使用 while 循環:

while IFS= read -r l; do
 mv -v -- "$l" "${l%/*/*/*}/"
done <file
  • while IFS= read -r lfile逐行讀取。
  • mv -v移動文件並-v告訴mv它是冗長

  • "$l"是源文件名
  • "${l%/*/*/*}/"是目標目錄。/*/*/*它從文件名的後端刪除 3 個斜杠以及它們之間的內容 ( )。

這將產生:

»/tmp/foldera/folderb/folderc/file1“ -> »/tmp/foldera/file1“
»/tmp/folderc/folderd/foldere/file2“ -> »/tmp/folderc/file2“
»/tmp/folderf/folderg/folderh/file3“ -> »/tmp/folderf/file3“

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