我有一些目录:
drwxr-xr-x 10 shamoon staff 320B Mar 20 10:05 dryrun-20200320_140542-1vbczul4
drwxr-xr-x 10 shamoon staff 320B Mar 20 10:06 dryrun-20200320_140605-uze15jta
drwxr-xr-x 10 shamoon staff 320B Mar 20 10:06 dryrun-20200320_140644-193bynci
drwxr-xr-x 13 shamoon staff 416B Mar 20 10:07 dryrun-20200320_140721-fuv399ji
drwxr-xr-x 13 shamoon staff 416B Mar 20 10:08 dryrun-20200320_140810-34dim70r
drwxr-xr-x 14 shamoon staff 448B Mar 20 10:10 dryrun-20200320_140935-138yuidx
drwxr-xr-x 14 shamoon staff 448B Mar 20 10:23 dryrun-20200320_141044-35pfvec6
drwxr-xr-x 14 shamoon staff 448B Mar 20 11:14 dryrun-20200320_151418-14g88zfr
drwxr-xr-x 14 shamoon staff 448B Mar 20 12:11 dryrun-20200320_151800-gf551inz
drwxr-xr-x 14 shamoon staff 448B Mar 20 12:21 dryrun-20200320_161134-wyu9kaxu
Run Code Online (Sandbox Code Playgroud)
我想设置一个指向最新的符号链接。现在,可能创建了更多最近的目录,因此理想情况下,符号链接也应自动更新。这可能吗?
Chr*_*own 21
这是不可能自动完成的——Unix 没有提供符号链接动态更改的工具。但是,您可以在后台使用一个程序来更新符号链接,inotify
并且后来的文件排序为稍后使用的事实LC_COLLATE=C
:
#!/bin/bash -e
export LC_COLLATE=C
shopt -s nullglob
base=/path
while inotifywait -e create \
-e moved_to \
-e moved_from \
-e close_write "$base" > /dev/null; do
dirs=("$base"/dryrun-[0-9]*/)
(( ${#dirs[@]} )) && ln -sfn -- "${dirs[-1]}" "$base"/latest
done
Run Code Online (Sandbox Code Playgroud)
这是它运行的结果:
% mkdir dryrun-20200320_140935-138yuidx
% ls -l latest
lrwxrwxrwx 1 cdown cdown 39 Mar 20 16:40 latest -> /path/dryrun-20200320_140935-138yuidx/
% mkdir dryrun-20200320_141044-35pfvec6
% ls -l latest
lrwxrwxrwx 1 cdown cdown 39 Mar 20 16:40 latest -> /path/dryrun-20200320_141044-35pfvec6/
Run Code Online (Sandbox Code Playgroud)
不,不是符号链接,但可以通过安装保险丝文件系统来实现。我不知道有任何保险丝文件系统可以做到这一点。但是可以创建一个。
归档时间: |
|
查看次数: |
667 次 |
最近记录: |