См.: /lib/systemd/system/systemd-tmpfiles-clean.timer
:
[Timer]
OnBootSec=15min
OnUnitActiveSec=1d
Это выполняет соответствие .service
файл 15 спустя минуты после начальной загрузки и затем каждый день, в то время как система произошла. Если Вы перезагружаете многократно в тот же день, у Вас может просто быть резервная проверка сценария mtime архива и пропуска, которые работают, если это - меньше чем старый день.
Кроме того, если Ваши резервные копии будут тяжелыми на IO, могло бы быть полезно читать о IOScheduling* директивы в systemd.exec (5) страница справочника.
LS
К сожалению, не имеет возможности получить атрибуты файла и отображать их произвольно. Некоторые системы имеют отдельные команды для этого (например, GNU имеет команду
или функциональность в GNU Найти
).
На большинстве современных систем, с большинством файлов, это должно работать, хотя:
$ ln -s '/foo/bar -> baz' the-file
$ LC_ALL=C ls -ldn the-file | sed '
1s/^\([^[:blank:]]\{1,\}[[:blank:]]\{1,\}\)\{8\}//'
the-file -> /foo/bar -> baz
, который работает, удаляя первые 8 пустых разграниченных полей первой строки выхода LS -L
. Это должно работать, за исключением систем, где GID не отображается там или первые 2 поля соединены вместе, когда есть большое количество ссылок.
С GNU :
:
$ LC_ALL=C stat -c '%N' the-file
'the-file' -> '/foo/bar -> baz'
с GNU Найти
:
$ find the-file -prune \( -type l -printf '%p -> %l\n' -o -printf '%p\n' \)
the-file -> /foo/bar -> baz
с FreeBSD / OS / X Stat:
f=the-file
if [ -L "$f" ]; then
stat -f "%N -> %Y" -- "$f"
else
printf '%s\n' "$f"
fi
с ZSH
Stat:
zmodload zsh/stat
f=the-file
zstat -LH s -- "$f"
printf '%s\n' ${s[link]:-$f}
Многие системы также имеют команду ReadLink
, чтобы специально получить цель ссылки:
f=the-file
if [ -L "$f" ]; then
printf '%s -> ' "$f"
readlink -- "$f"
else
printf '%s\n' "$f"
fi
Вы можете поставить библиотеки в ~ / mylib
~ / mylib ~ / mylib ~ / mylib ld_library_path
, чтобы найти там:
export LD_LIBRARY_PATH=~/mylib
Вы можете поместить эту строку в вашем ~ / .bashrc
Если вы хотите, чтобы это было доступно более навсегда.
с GNU LS
(и, видимо, TCSH
Реализация) Вы можете взломать $ Ls_colors
Переменная среды для вставки разделителей, в которые вам нравятся (но TCSH
Встроенный LS-F
не делает целей ссылки - только ссылка Флаги ) Обычно LS
LS
вставляет произвольные непечатанные терминальные высказывания на основе значений, хранящихся в этой среде VAR, но ничего не останавливает нас от вставки произвольного. Подробнее об этом здесь .
Например:
LS_COLORS='ln=///\n:lc=:no=//:rc=:rs=:' \
\ls ~ -l --color=always |
sed '\|///|,\|//|!d;//d'
, который помещает строку, такую как //
в головке каждого списка (так как только до lrwcrwx
) и A /// \ N
непосредственно перед файлом любой ссылки. SED
Затем фильтры на линии линии - это будет d
D d d lete каждая линия ввода до тех пор, пока она не встречается ///
и оттуда через следующую строку, которая соответствует //
Это удалит строки сопоставления //
. Таким образом, он только получает имя ссылки и целевую цену связи - независимо от промежуточных символов. Это связано с тем, что /
не может произойти в файле имени файла - и те, кто в любом пути LS
может напечатать только вонзить только по отдельности.
Смотрите?
mkdir test; cd test
touch 'long
name' shortname
ln -s l* "$(printf %s.ln l*)"; ln -s s* shortname.ln
LS_COLORS='ln=///\n:lc=:no=//:rc=:rs=:' \
\ls -l --color=always | sed '\|///|,\|//|!d;//d'
... Какие печатаются:
long
name.ln -> long
name
shortname.ln -> shortname
Попробуйте сами.
Используйте команду файл
.
[sreeraj@server ~]$ ls -l mytest
lrwxrwxrwx 1 sreeraj sreeraj 15 Dec 12 09:31 mytest -> /usr/sbin/httpd
[sreeraj@server ~]$ file mytest
mytest: symbolic link to `/usr/sbin/httpd'
ИЛИ
[sreeraj@server ~]$ file -b mytest
symbolic link to `/usr/sbin/httpd'
[sreeraj@server ~]$
также, пожалуйста, прочитайте чтение через страницу человека LS
и проверьте параметры -L
и -H
и посмотрим, если это хватило Ваше требование.
[В Linux / Bash]
Я бы сделал следующее:
ls -l | sed -e"s/ \+/ /g" | cut -d' ' -f 9-
Команда sed
сворачивает несколько пробелов в один пробел;
cut
] извлекает 9-е поле и далее, где разделителем полей является пробел.
Типичный результат этого:
libboost_atomic.a
libboost_atomic.so -> libboost_atomic.so.1.57.0
libboost_atomic.so.1.57.0
...
libboost_wserialization.a
libboost_wserialization.so -> libboost_wserialization.so.1.57.0
libboost_wserialization.so.1.57.0
Альтернативы:
ls -l | awk '{ print $9, $10, $11 }'
ls -l | awk '{ $1 = $2 = $3 = $4 = $5 = $6 = $7 = $8 = "" ; print }'
Но они несовершенны: первый может выводить конечные пробелы; вторые, ведущие пробелы.