Rsync
用原始文件覆蓋符號連結
我有一個包含一些符號連結文件的目錄,例如:
/home/user/symlink/$(*symlink_file_name1*).mkv /home/user/symlink/$(*symlink_file_name2*).mkv
我有另一個包含原始文件(符號連結文件)的目錄:
/home/user/original/$(*original_file_name1*).mkv /home/user/original/$(*original_file_name2*).mkv
所以問題是將所有
.mkv
文件“轉換”/home/user/symlink/
為具有相同文件名的原始文件。在符號連結文件夾中,我想要所有原始文件的名稱
symlink name $(*symlink_file_name*)
那麼我可以搬到
/home/user/original/$original_file_name1.mkv
類似/home/user/symlink/$(symlink_file_name1).mkv
的地方嗎?
使用 GNU
readlink
將符號連結解析為原始文件名:首先我模仿你的目錄設置:
$ mkdir original "symlink dir" $ touch original/file1 original/file2 $ cd "symlink dir"/ $ ln -s ../original/file1 link1 $ ln -s ../original/file2 link2 $ cd ..
然後復製文件:
$ for link in "./symlink dir"/*; do > orig="$(readlink -f "$link")" > rm "$link" > cp -v "$orig" "$link" > done ‘/home/user/original/file1’ -> ‘./symlink dir/link1’ ‘/home/user/original/file2’ -> ‘./symlink dir/link2’