Как предложено derobert, Ваш лучший выбор состоит в том, чтобы использовать find
. Однако можно на самом деле использовать результат в конвейере с другими командами.
GNU (и некоторый BSD's) find
поддерживайте -print0
предикат, который говорит этому печатать имя файла, завершенное символом NUL, который символ не позволяется в имени файла и гарантиях, там не будет коллизией. Другие команды могут быть проинструктированы для использования NUL в качестве их входного разделителя.
Самым важным из которых является GNU xargs
, который выполняет команду, которую Вы указываете, и передает ему список файлов как параметры командной строки. Вы хотите работать xargs -r0
в сочетании с находкой -print0
Например:
find . -type f ! \( -name \*.pdf -o -name \*.txt \) -print0 | xargs -r0 ls -ld
Это безопасно печатает длинный список каталогов всего PDF и txt файлов, включая тех, которые имеют пробелы или непечатные символы на имя.
Можно также использовать его с GNU tar
следующим образом:
tar -zcf myarchive.tar.gz --null --files-from <(
find . -type f ! -name \*.tar.gz -print0)
Это создает tar.gz файл всех файлов, имена которых не заканчиваются в .tar.gz
rsync
также принимает разграниченные пустым указателем файлы с -0
параметр, также, как и несколько других. Но xargs
связующее звено, которое Вы будете обычно использовать для этого типа цели. Или это или find
-exec
функция.
lsusb
на CentOS 7. Возможно, lsusb должен зависеть от libusbx... – Denys Vitali 12.11.2017, 19:52