一直困扰我一段时间的一件事是:
% which halt
/sbin/halt
% file /sbin/halt
/sbin/halt: symbolic link to `reboot'
Run Code Online (Sandbox Code Playgroud)
但是,执行sudo halt
当然不会重新启动系统。这是为什么?
例如,还有其他几个程序以这种方式工作pdflatex
。
在 Linux 中,查找指向给定文件的所有符号链接的最佳方法是什么(无论符号链接是相对的还是绝对的)?我意识到这将需要扫描整个文件系统。
我在本地开发的应用程序将其输出记录到使用当前时间戳格式化的文件中,例如app-%Y%m%d.log
.
为了使能够在终端窗口中跟踪当前日日志变得简单,我有一个名为的符号链接current.log
,指向今天的日志。
每天开始工作时,我需要杀死尾部进程,将符号链接指向今天的文件,然后重新运行命令到tail -f current.log
.
是否可以在无需重新启动的情况下更改符号链接的目标tail
- 通过更改文件句柄的目标而tail
不是更明智?
为了自动执行这个“新工作日开始”任务,很容易设置一个 cron'ed 脚本来将符号链接指向今天的文件,但似乎现有tail
流程不知道目标已经改变。
我想在两台机器之间同步一个大文件夹层次结构。如果符号链接是绝对的,我想复制它们的内容,例如它指向/some/folder/someFile
我想保留符号链接,如果它们是相对的,例如,它指向../../somefolder
我该怎么做?
编辑: 基本上我尽量避免递归。我试过 --copy-unsafe-links 选项,它复制绝对链接但跳过内部或相对链接,不保留链接。
如何根据当前用户创建一个指向不同位置的可变符号链接?是否可以?我应该用别的东西代替吗?挂载点?如何?
如果您遇到不同的解决方案,则会出现以下问题:
在工作中,我们是一个使用 SVN 在 Unix 上开发的团队。我们都使用相同的开发机器(远程)。所以我们在不同的地方结账(不是 /home,而是安装在另一个磁盘上的特定目录,比如 /svn/[userlogin]/)。
我们使用脚本和工具。一些特殊工具具有复杂的配置和项目文件,其中包括源文件的路径。这很容易出错,我们会因为错误的配置或需要一直重新创建的“项目”而损失大量时间。我想与所有开发人员共享这个复杂的配置和项目文件。
但是为了在处理不同的结账时共享这些文件,我必须:
在此之前,我们使用 clearcase,它为每个人(假设 /vob)安装了相同路径的视图,每个开发人员都可以看到他或她自己的视图。那很方便。
我怎么能做类似的事情?你能想到另一种解决方案吗?谢谢。
- 编辑 -
我在想 Eclipse IDE。我想分享一些工作区设置、项目和运行/调试配置。Eclipse(+插件)设置由 50 多个小文件组成,因此编辑它们是不可能的。
由于固定的“/vob”路径,对于每个终端,它会自动指向我们选择的“视图”,使用 clearcase 很容易。
我想要类似的东西。我想要一个/svn/mysource,对于每个终端,它指向用户当前结帐,它位于用户相关的路径中。
如何使用 git 将目录设为只读?
情况是 - 在项目中,我有一个指向共享框架的符号链接。我不希望它以任何方式被覆盖/更改(甚至不是 mtime 或 atime)。
我该怎么做 - 还是我从错误的角度看待这件事?
我知道/proc
文件系统反映了各种进程的输出。不幸的是,我有一个专有 ( romdump
) 二进制文件,它希望挂载表显示为/proc/mtd
,而我的 Android 设备似乎将其输出为/proc/mounts
.
我试过创建一个符号链接,但显然这只适用于实际文件或目录。我怎样才能欺骗这个二进制文件来读取输出/proc/mounts
而不是/proc/mtd
?
我知道我们可以为文件做到这一点。目录呢?
似乎 cpanel 经常使用它。
在我编写脚本之前,任何人都知道执行以下操作的简单方法:
$ pwd
/foo/bar
$ ls -l
lrwxr-xr-x 1 username admin 48 Apr 17 2012 foo.sh -> /bar/foo.sh
$ cd /bar
$ ls
foo.sh
Run Code Online (Sandbox Code Playgroud)
即,在目录中/foo/bar
,我想做一些类似cdl
(cd link) 的操作,这会将我带到链接文件的目录(或者也可以转到链接目录,如果碰巧是这样的话——如果是我的话)可以输入cd -P /bar
)。
$ cp --no-preserve=mode --parents /sys/power/state /tmp/test/
$ cp --no-preserve=mode --parents /sys/bus/cpu/drivers_autoprobe /tmp/test/
Run Code Online (Sandbox Code Playgroud)
两行中的第二行将失败
cp: cannot make directory ‘/tmp/test/sys/bus’: Permission denied
Run Code Online (Sandbox Code Playgroud)
原因是它/tmp/test/sys
是在没有写权限的情况下创建的(和原来的一样/sys
);正常人mkdir /tmp/test/sys2
不会这样做:
$ ls -la /tmp/test/
total 32
drwxr-xr-x 3 robert.siemer domain^users 4096 Oct 11 13:56 .
drwxrwxrwt 13 root root 20480 Oct 11 13:56 ..
dr-xr-xr-x 3 robert.siemer domain^users 4096 Oct 11 13:56 sys
drwxr-xr-x 2 robert.siemer domain^users 4096 Oct 11 13:59 sys2
Run Code Online (Sandbox Code Playgroud)
我怎样才能指示cp
不保留模式,除了--no-preserve=mode
,它不像我认为的那样工作......?
或者我应该使用哪种工具来复制文件列表而不保留符号链接之外的“任何东西”?