'tar' с 'находкой' с удалением исходного расширения файла

Я принял твою команду,

$ find / -type f -ctime +30 -mtime +30 -atime +30 -exec md5sum {} \; | xargs -P 4

И решил, что мы хотим переориентироваться, продолжая эхо на stdout. Один из способов сделать это - с помощью tee

$ man tee | head
NAME
   tee - read from standard input and write to standard output and files

Так что tee определённо будет записывать в stdout (это то, что нам нужно для продолжения цепочки), а также записывать в файл по нашему выбору. Здорово! Но какой файл?

Благодаря этому ответу за идею https://stackoverflow.com/a/9405342, мы можем использовать

/dev/tty

для нашего перенаправления, и он распечатает на нашу консоль!

Итак, для полной команды:

$ find / -type f -ctime +30 -mtime +30 -atime +30 -exec md5sum {} \; | tee /dev/tty | xargs -P 4

Я начинаю видеть, как какой-то замечательный текст скатывается вниз по экрану, как я это делаю :)

.

1
10.04.2014, 01:03
1 ответ
[1129440] Вместо команды shell необходимо [1129848]-exec[1129849]:[12147] Более того, обратите внимание, что ваша команда [1129850]find[1129851] - это [1129852] поиск[1129853] файлов на всех уровнях. Таким образом, использование [1129854]basename[1129855] для передачи списка файлов не сработает, если файлы не существуют в текущем каталоге.[12148]Для уточнения,[12149]приведет к ошибкам, если [1129856]foo.txt[1129857] не существует в текущем каталоге. Поэтому необходимо передать путь к [1129858]foo.txt[1129859].[1129447].
2
27.01.2020, 23:38

Теги

Похожие вопросы