Простой способ увидеть, что делают длинные конвейеры, - запускать их по одному.Запустите ls -lt
, затем ls -lt | grep -
, затем ls -lt | grep - | head -1
и т. Д. Посмотрите, каков промежуточный вывод каждой команды, чтобы вы знали, что подается в следующую.
$ cd /usr
$ ls -lt
total 156
drwxr-xr-x 11 root root 4096 Mar 6 06:35 src/
drwxr-xr-x 2 root root 90112 Mar 5 06:27 bin/
drwxr-xr-x 2 root root 12288 Mar 5 06:27 sbin/
drwxr-xr-x 155 root root 4096 Mar 5 06:27 lib/
drwxr-xr-x 50 root root 20480 Feb 20 18:11 include/
drwxr-xr-x 330 root root 12288 Feb 18 16:58 share/
drwxr-xr-x 2 root root 4096 Oct 19 13:51 games/
drwxr-xr-x 3 root root 4096 Jul 19 2016 locale/
drwxr-xr-x 10 root root 4096 Jul 19 2016 local/
Список файлов с каждой записьюна отдельной строке вместе с разрешениями, размером и другой информацией.Глядя на man ls
, я вижу, что флаг -t
означает, что файлы отсортированы по времени изменения, от самого нового к старому.
$ ls -lt | grep -
drwxr-xr-x 11 root root 4096 Mar 6 06:35 src/
drwxr-xr-x 2 root root 90112 Mar 5 06:27 bin/
drwxr-xr-x 2 root root 12288 Mar 5 06:27 sbin/
drwxr-xr-x 155 root root 4096 Mar 5 06:27 lib/
drwxr-xr-x 50 root root 20480 Feb 20 18:11 include/
drwxr-xr-x 330 root root 12288 Feb 18 16:58 share/
drwxr-xr-x 2 root root 4096 Oct 19 13:51 games/
drwxr-xr-x 3 root root 4096 Jul 19 2016 locale/
drwxr-xr-x 10 root root 4096 Jul 19 2016 local/
Появляется для удаления строки «всего 156».(Если это цель, то это довольно плохой способ сделать это. Нет гарантии, что в каждой строке есть тире, что и ищет grep -
. Файл с полными разрешениями rwxrwxrwx
не будет иметь тирев строке.)
$ ls -lt | grep - | head -1
drwxr-xr-x 11 root root 4096 Mar 6 06:35 src/
Получает первую строку предыдущих результатов grep.
$ ls -lt | grep - | head -1 | awk '{print $9}'
src/
Печатает девятый столбец, имя файла.
Осторожно: В этот момент вы можете добавить | xargs rm
, но это rm
выглядит опасно.Давай не будем, а?Вместо того, чтобы запускать его, чтобы увидеть, что происходит, я бы попробовал man xargs
, чтобы увидеть, что делает xargs rm
.Или google "xargs rm": ага, это говорит мне, что он удалит передаваемые файлы. Полезно знать - я думаю, что передам.
Соберите все части вместе, и вы могли бы описатьобщий результат в виде «перечислить файлы в обратном хронологическом порядке, найти первый и удалить его».Или, другими словами, удалить самый новый файл .Это то, что делает все это.