Попытка найти пустые файлы в домашнем каталоге другого пользователя

#linux #grep #find #cut

#linux #grep #Найти #вырезать

Вопрос:

Например, я хочу искать пустые файлы внутри домашнего каталога пользователя «adam».

Теперь я не знаю правильного пути для этого пользователя, поэтому мне нужно получить его /etc/passwd с помощью следующей команды:

 grep ^adam: /etc/passwd | cut -d: -f6
 

Вывод: /home/adam (например)
Затем выполните эту команду, чтобы найти пустые файлы.

 find /home/adam -type f -size 0 -print
 

Возможно ли это сделать с помощью одной команды?

Итак, я попробовал это:

 grep ^adam: /etc/passwd | cut -d: -f6 | find -type f -size 0 -print
 

Ответ №1:

Очень близко … это то, что я бы сделал (используя одну команду вместо двух):

 find $(awk -F: '$1=="adam"{print $6}' /etc/passwd) -type f -size 0
 

(Спасибо за предложение по улучшению, Ed)

С вашим grep amp; cut это тоже сработало бы:

 find $(grep ^adam: /etc/passwd | cut -d: -f6) -type f -size 0
 

Эти два используют подстановку команд

Если вы предпочитаете pipe , вы могли бы использовать xargs :

 grep ^adam: /etc/passwd | cut -d: -f6 | xargs -i find "{}" -type f -size 0