具有以下文件層次結構:
dir
├── dirA
│ └── snapshot
│ └── subdir1
│ └── file1
└── dirB
└── snapshot
└── subdir2
└── file2
我想在單一命令中從每個快照/子目錄目錄移動檔案到快照的父目錄。那將是:
dir
├── dirA
│ └── file1
│ └── snapshot
│ └── subdir1
└── dirB
└── file2
└── snapshot
└── subdir2
我已經嘗試過mv dir/*/snapshot/*/* ../../
,但由於目標部分../../
是相對於工作目錄的,所以它顯然不起作用。
是否可以使用 bash 命令(因為我從未編寫過一行 bash 腳本)?
答案1
基於@Don_Christ的敏銳觀察,這個答案被編輯,從而保存了一個子shell:
for i in dir/*/snapshot; do
mv "$i"/*/* "$i"/..
done