Shell
根據文件名的相似性對文件進行排序
我有一個包含許多文件的目錄結構。我想遞歸地找到類似的文件並根據它們的名稱對它們進行排序。
最簡單的部分:找到所有命名的文件
f*.ext
並將它們移動到某個目錄,比如說dir1
.但現在我想再次遍歷樹並找到所有
t*.ext
在dir1
. 例如,對於dir1/f12345.jpg
找到對應的source-tree/t12345.jpg
(如果存在)並將其移動到dir2
.最後,每個人都
dir2/t*.ext
應該有一個dir1/f*.ext
。所有source-tree/t*.ext
沒有 a 的人都dir1/f*.ext
應該留在原地。
試試這個:
# Create dir2: mkdir dir2 # After moving f* to dir1, loop through these files (dir1/f*): for f in dir1/f*; do # get the basename, cut off the "f" and put a "t" instead: t=source-tree/t$(basename "$f" | cut -c 2-) # If that file exists, move it to dir2 [ -f "$t" ] && mv "$t" dir2 done