标签: symlink

删除文件及其符号链接

如果我创建一个文件并对其进行符号链接,例如

touch "example"
ln -s "example" "link_example"
Run Code Online (Sandbox Code Playgroud)

并使用

rm example
Run Code Online (Sandbox Code Playgroud)

符号链接仍然存在。如何删除文件以及指向该文件的所有符号链接?

command-line symlink rm

7
推荐指数
1
解决办法
5708
查看次数

关于 cp --preserve=links 的信息

我试图了解cp --preserve=links单独使用时的作用,从我的测试来看,它似乎正常复制了一个普通文件并取消了符号链接的引用,但它似乎与 cp -L 在单个文件上使用时具有相同的效果。

这是真的还是我遗漏了什么?

hard-link cp symlink

7
推荐指数
1
解决办法
8380
查看次数

如何使用 ls 将目录符号链接与其他目录分组?

ls --group-directories-first在文件之前显示所有目录,但如果有指向目录的符号链接,则会在文件之间显示。有没有办法将目录符号链接与其他常规目录分组?

ls symlink files

7
推荐指数
2
解决办法
681
查看次数

使用带有符号链接的 ls 命令

我目前不明白在使用该ls命令时尝试查找指向目录的符号链接的内容或信息时发生了什么。我知道-Hls命令有一个选项将遵循命令行上列出的符号链接。手册页ls没有说明只有在使用该-l选项时才需要这样做。如果我只是做类似的事情ls symLinkToDir它将列出链接目录的内容,而没有其他选项。但是,如果我这样做,ls -l symLinkToDir它只会显示有关链接的信息,除非我也包含该-H选项。这个例子就是我要说的:

brian@LinuxBox:~$ ls playground/linkedDir
file4  file5
brian@LinuxBox:~$ ls -l playground/linkedDir
lrwxrwxrwx 1 brian brian 4 Feb 18 16:42 playground/linkedDir -> dir2
brian@LinuxBox:~$ ls -lH playground/linkedDir
total 0
-rw-rw-r-- 1 brian brian 0 Feb 18 16:41 file4
-rw-rw-r-- 1 brian brian 0 Feb 18 16:41 file5
Run Code Online (Sandbox Code Playgroud)

我在这里不明白吗?这只是一种奇怪的工作方式吗?如果这确实是它的工作原理,手册页不应该说在某些条件下不需要该-H选项就可以遵循符号链接吗?预先感谢您的意见。

command-line ls documentation symlink

7
推荐指数
1
解决办法
2万
查看次数

如何向 AppArmor 教授顶级符号链接

我将“根”分区分为两个:一个包含大多数文件的普通分区,另一个用于可以“增长”的区域。具体来说,这意味着,我有如下符号链接:

/var/log   -> /part1/log
/var/cache -> /part1/cache
/var/spool -> /part1/spool
Run Code Online (Sandbox Code Playgroud)

这一直很有效,直到我开始使用 AppArmor,它一直抱怨 cupsd 查看 /part1/log/cups/.. 中的文件之类的事情。

我目前通过为受 AppArmor 保护的每个应用程序添加条目来解决此问题,但这很乏味。

是否有某种方法可以一劳永逸地告诉 AppArmor,如果/var/log/FOO允许访问,则/part1/log/FOO也应该允许访问?

symlink apparmor

7
推荐指数
1
解决办法
1735
查看次数

如何压缩不包括符号链接及其指向的文件的目录?

我有一个包含文件、子目录和符号链接的目录

如何在没有符号链接或符号链接引用的文件的情况下压缩该目录中的文件和文件夹?

linux zip symlink files

7
推荐指数
2
解决办法
6905
查看次数

使用 7-Zip 保留存档中的文件权限和符号链接

我有一个test包含三个文件的目录ls -l test

total 8
-rw-r--r-- 1 mb mb 16 Jul 25 11:12 regular_file
-rwxr-xr-x 1 mb mb 19 Jul 25 11:02 script.sh
lrwxrwxrwx 1 mb mb 12 Jul 25 11:14 symlink -> regular_file
Run Code Online (Sandbox Code Playgroud)

它包含一个常规文件、一个符号链接和一个可执行脚本。

使用 归档此目录后tar -czf test.tgz test/,我想使用 7-Zip 提取三个文件:

7z x -tgzip test.tgz && 7z x -ttar test.tar
Run Code Online (Sandbox Code Playgroud)

不幸的是,7-Zip 不会生成原始文件:该脚本丢失了其可执行位,symlink不再是符号链接,而是包含文本的文件regular_file

total 12
-rw-r--r-- 1 mb mb 16 Jul 25 11:12 regular_file
-rw-r--r-- 1 mb mb 19 Jul …
Run Code Online (Sandbox Code Playgroud)

executable symlink 7z

7
推荐指数
1
解决办法
1万
查看次数

如何忽略警告,但保留“查找”中的错误消息

我正在尝试运行find命令,由于文件夹的设置方式,我在脚本中多次收到以下警告:

\n
find -L ./server/ -type f -printf '%s %p\\n' | <rest of really long complicated script>\n
Run Code Online (Sandbox Code Playgroud)\n

输出

\n
find: File system loop detected; \xe2\x80\x98./server/~andreas/root\xe2\x80\x99 is part of the same file system loop as \xe2\x80\x98./\xe2\x80\x99.\nfind: File system loop detected; \xe2\x80\x98./server/~bob/root\xe2\x80\x99 is part of the same file system loop as \xe2\x80\x98./\xe2\x80\x99.\nfind: File system loop detected; \xe2\x80\x98./server/~charles/root\xe2\x80\x99 is part of the same file system loop as \xe2\x80\x98./\xe2\x80\x99.\n...\n
Run Code Online (Sandbox Code Playgroud)\n

我知道为什么我会收到这些消息。这些符号链接是故意放置在那里供其他脚本使用的,因此我想安全地忽略控制台输出中的这些警告。

\n

如何防止find显示“检测到文件系统循环”之类的警告,但仍保留所有“真实”错误消息?

\n

我不能只是告诉 …

bash find symlink

7
推荐指数
1
解决办法
4382
查看次数

为什么这个新目录的链接计数为 3?

$ sudo su
# dd if=/dev/zero of=./myext.img bs=1024 count=100
.
.
.
# modprobe loop
# losetup --find --show myext.img
/dev/loop0
# mkfs -t myext /dev/loop0
.
.
.
# mkdir mnt
# mount /dev/loop0 ./mnt
# cd mnt
# ls -al
total 17
drwxr-xr-x  3 root root  1024 Jul 21 02:22 .
drwxr-xr-x  11 shisui shisui  4096 Jul 21 02:22 ..
drwx------  2 root root 12288 Jul 21 02:22 lost+found
Run Code Online (Sandbox Code Playgroud)

(删掉一些命令的一些输出)。我的第一个问题是,为什么没有mnt出现在ls -al输出中?我所看到的只是root。我进入了\mnt …

linux ls filesystems hard-link symlink

7
推荐指数
1
解决办法
1667
查看次数

用符号链接替换 ​​etc 中的文件是个好主意吗?

我不经常切换机器,但我不想被绑定到一台机器。我不升级硬件的原因通常是因为我不想设置新机器。

到目前为止,我已经努力将大部分内容集中在主目录中,以便轻松备份和部署在新计算机上。

最大的问题是那些(可能有数百个)配置文件,我已经对其进行了一些(通常是微小的)更改,但如果没有它们在新机器上,任何东西都无法工作。

我有一个想法,制作一个脚本,从 etc 中抓取文件,将它们放在我的主目录中,并用符号链接替换原始文件。然后我会有另一个脚本,在新机器上将检查抓取的文件并用符号链接替换原始文件。

我不确定这听起来有多令人困惑,所以这里有一个简单的例子。

#!/bin/bash

FILE=$(realpath $1)
TARGET=$(realpath ~/snatched)$FILE

mkdir -p $TARGET
mv $FILE $TARGET
ln -s $TARGET $FILE
Run Code Online (Sandbox Code Playgroud)

然后运行

snatch /etc/hosts
Run Code Online (Sandbox Code Playgroud)

将在原始位置放入并创建符号链接/etc/hosts~/snatched/etc/hosts

我担心水下的石头,任何会让我将来后悔的事情,基本上都是来自更有经验的用户的建议。

谢谢!

backup etc symlink

7
推荐指数
3
解决办法
2193
查看次数

标签 统计

symlink ×10

ls ×3

command-line ×2

files ×2

hard-link ×2

linux ×2

7z ×1

apparmor ×1

backup ×1

bash ×1

cp ×1

documentation ×1

etc ×1

executable ×1

filesystems ×1

find ×1

rm ×1

zip ×1