перечислите все c файлы в подкаталогах и их родительском каталоге

Вы случайно пытались отредактировать свой .bashrc файл?

Существует резервная копия, расположенная здесь:

/etc/skel/.bashrc

Для восстановления корня выполняет это:

cp /etc/skel/.bashrc /root/.bashrc
2
17.04.2015, 10:47
2 ответа

Можно было бы отформатировать выходные данные с помощью GNUfind. Предполагая, что файлы создаются самим пользователем, ваша команда была бы:

find /home/ -maxdepth 2 -type f -name '*.c' -printf '%u,%p\n'

См. man find для получения более подробной информации о printf

Вы могли бы также использовать следующие

find /home/ -maxdepth 2 -type f -name '*.c' -exec bash -c 'n="${1%/*}"; n="${n##*/}"; echo "$n",$1' _ {} \;
2
27.01.2020, 22:00

Было бы возможно отформатировать вывод с использованием GNUFIND. Предполагая, что файлы создаются самими пользователями пользователя вашей командой:

find /home/ -maxdepth 2 -type f -name '*.c' -printf '%u,%p\n'

см. Человек Найти Для более подробной информации о PrintF

Вы также можете использовать следующие

find /home/ -maxdepth 2 -type f -name '*.c' -exec bash -c 'n="${1%/*}"; n="${n##*/}"; echo "$n",$1' _ {} \;
-121--128783-
for i in /home/*/*.c
do
echo $i|awk 'BEGIN{FS="/"}{print $3, ",", $0;}'
done

Это может помочь.

или в более короткой форме

 echo /home/*/*.c | awk 'BEGIN{FS="/";RS=" "}{printf "%s,%s\n",$3,$0;}'

где

  • Echo /home/*/*.ch будет расширяться (при условии, что у вас есть справа), все .C файлы
  • awk
    • Начало {fs = "/"} будет использоваться / в качестве поданного сепаратора
    • {printf "% s,% s \ n", $ 0, $ 3;} и распечатайте всю строку ($ 0) и файл (3 доллара)
2
27.01.2020, 22:00

Теги

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