чтобы понять другой ответ:
find / -type d -print0 | while read -r -d ''; do ls -ltr "$dir" | sed '$!d'
Первый шаг - понять использование опции -r команды read.
Сначала я подумал, что достаточно просто выполнить
man read
чтобы найти значение опции -r, но я понял, что страница руководства вообще не содержит никакого объяснения опции, так что я погуглил, потому что у нее есть примеры read -t, read -p, но нет read -r.
command-line
read
Абдул Аль Хазред
источник
источник
help read
илиman bash
READ(1P)
существует для меня ...Ответы:
Автономной
read
команды не существует: вместо этого это встроенная оболочка, и поэтому она описана на странице руководства дляbash
:Таким образом, чтобы подвести итог,
read
обычно позволяет разрывать длинные строки, используя символ обратной косой черты, и обычно восстанавливает такие строки. Это немного удивительное поведение можно отключить с помощью-r
.источник
str="a\bc"; read x <<< "$str"; read -r y <<< "$str"; echo "$x"; echo "$y"
str="a` and then hit Enter before pasting in the rest of the command starting with
наберете b`.Эта
-r
опция предотвращает интерпретацию символов обратной косой черты . Вот пример:Предположим, есть файл с этим содержимым:
источник