如何删除符号链接未指向的所有子目录?
How do I delete all child directories not pointed at by a symlink?
我在 Ubuntu 16.04 上使用 bash shell。我有一个像这样设置的符号链接
$ ls -al /home/myuser/web/current
lrwxrwxrwx 1 myuser myuser 40 Feb 25 15:49 /home/myuser/web/current -> /path/to/main/releases20220225152608
“releases”目录包含其他几个目录
$ ls /path/to/main/releases
20220223111602
20220224122838
20220225152608
如何删除符号链接“/home/myuser/web/current”未指向的“/path/to/main/releases”中的所有其他子目录?
尝试
for dir in /path/to/main/releases/*/; do
[[ $dir -ef /home/myuser/web/current ]] || echo rm -r -- "$dir"
done
[[ $path1 -ef $path2 ]]
测试检查两个路径是否引用磁盘上的相同项目(文件、目录、fifo 等),而不管任一路径中遍历的链接(硬链接或软链接) .
- 如果您对生成的代码能够满足您的要求感到满意,请删除
echo
。
我在 Ubuntu 16.04 上使用 bash shell。我有一个像这样设置的符号链接
$ ls -al /home/myuser/web/current
lrwxrwxrwx 1 myuser myuser 40 Feb 25 15:49 /home/myuser/web/current -> /path/to/main/releases20220225152608
“releases”目录包含其他几个目录
$ ls /path/to/main/releases
20220223111602
20220224122838
20220225152608
如何删除符号链接“/home/myuser/web/current”未指向的“/path/to/main/releases”中的所有其他子目录?
尝试
for dir in /path/to/main/releases/*/; do
[[ $dir -ef /home/myuser/web/current ]] || echo rm -r -- "$dir"
done
[[ $path1 -ef $path2 ]]
测试检查两个路径是否引用磁盘上的相同项目(文件、目录、fifo 等),而不管任一路径中遍历的链接(硬链接或软链接) .- 如果您对生成的代码能够满足您的要求感到满意,请删除
echo
。