我想为“myfiles”中尚未链接到的所有文件创建符号链接(symbolic link),并为刚刚创建的符号链接(symbolic link)指定目标文件夹。
我正在使用以下 cmd 成功地生成现有链接的列表,这些链接指向“我的文件夹”:
find ~/my-existing-links/ -lname '*/myfiles/*' -printf "%f\n" > results.txt
我正在使用以下 cmd 进行反向匹配,即列出 myfiles 中未链接到的文件:
ls ~/myfiles | grep -vf results.txt > results2.txt
因此,results2.txt 有一个文件列表,我现在想为每个文件创建一个新的符号链接(symbolic link)到......在一个名为 ~/newlinks 的文件夹中。
我知道可以使用 find/exec 组合为 'ln -s' 提供文件列表,即
find ~/myfiles/ -exec ln -s {} -t ~/newlinks \; -print
.... 但那将是 myfiles 中未过滤的文件列表。我想使用过滤后的列表。
有什么办法可以做到这一点吗?我将定期向 myfiles 添加文件,因此会定期访问该文件夹,以便为所有新文件生成符号链接(symbolic link),这样我就可以逻辑地划分链接(而不是更改原始文件名)。
最佳答案
尝试使用 xargs:
cat results2.txt | xargs -I{} ln -s {} ~/newlinks
关于linux - 使用 Bash,如何在不使用 'ln -s' 的情况下将文件列表输入 'find' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696335/