Я предполагаю, что Вы смущены cat
команда (и перенаправление оболочки), а не find
один.
find . -type f -name "*.c" -exec cat {} \; > all_c_files.txt
эквивалентно:
(
cat file1 ;
cat file2 ;
cat file3 ;
...
cat fileN
) > all_c_files.txt
очевидно, предыдущая команда и следующая имеют тот же идентичный результат:
cat file1 file2 file3 ... fileN > all_c_files.txt
Это работает в любой оболочке POSIX:
find <directory> -type f -exec sh -c '
for f do
printf "%s: %s\n" "${f%/*}" "${f##*/}"
done' sh {} +
Эта команда выполняется в каждом файле (имя файла, хранящееся в переменной f
) и отображает каталог ( {F% / *}
), толстая кишка и имя файла ( $ {F ## * /} '
).
Я использую ControlMaster
и не отключался.
ControlMaster
- это опция конфигурации SSH, которая сохраняет соединения открытыми в течение определенного времени и может мультиплексировать сеансы SSH через одно и то же соединение (что позволяет избежать медленных обменов ключами). Однако, если ^ D из оболочки, а затем повторно запустить ssh
, вы не отключили исходное соединение .
При перезапуске sshd
перезагружается только процесс прослушивания: любой текущий сеанс остается активным, поэтому соединение также не перезапускается.
При запуске новой оболочки не выполняется повторная проверка /etc/passwd
на наличие изменений.
Решение состояло в том, чтобы закрыть соединение: ssh < имя _ узла > -O exit
и снова войти в систему.
дамп или fs _ freq в столбце /etc/fstab
- частота дампа в днях. Он используется опциями dump
's -w
и -W
для информирования оператора о том, какие файловые системы необходимо сбросить. Насколько мне известно, 0 в этой области никогда не мешало сбросить
; файловая система не будет отображаться в выходных данных dump -w
.
Одним из примеров использования является то, что оператор дампа запускает dump -w
, чтобы увидеть, что необходимо сделать в этот день, затем загружает соответствующие ленты в ленточные накопители и запускает dump
, чтобы выполнить полный или инкрементный дамп для каждой подходящей файловой системы. На практике большинство установок, с которыми я знаком, сбрасывали каждую файловую систему каждый день, поэтому дамп -w
использовался только для проверки того, падала ли файловая система через трещины.
Но я еще не понял, в каком состоянии будет выполняться команда? И где будет расположение свалки.
Он не выполняется по умолчанию. Ты должен сам что-то устроить. Его можно вывести на ленту, если она имеется, или в файл. Многие люди используют систему резервного копирования более высокого уровня, например amanda , для управления резервным копированием.
-121--145930-как насчет...
find `pwd` -type f | perl -lane '@x=split(/\//); print "$x[$#x-1]: $x[$#x]";'
find .
или
find . -ls
Если вы хотите детали ...
с использованием LS с помощью Одиночный уровень (каталоги, содержащие файлы, а не другие каталоги):
ls -1d -- */*
для простого списка,
ls -ld -- */*
для деталей (это цифра 1 в первом примере, буква L в нижнем регистре во втором).
С ZSH
:
for d (*(/N)) {for f ($d/*(N:t)) printf '%s: %s\n' $d $f; echo}
Теперь, если вам все равно, если вы не заботитесь о сортировке или исключающих скрытых файлах, или имея пустую линию между каталогами, затем (предполагая Имена файлов не содержат Newline символов), вы можете просто сделать:
find . -path './*/*' -prune -print | sed 's|\./||;s|/|: |'
с GNU Найти
, вы также можете сделать:
find . -path './*/*' -prune -printf '%P\n' | sed 's|/|: |'
или:
find . -path './*/*' -prune -printf '%h: %f\n'
, если вы не заботитесь о ведущем . /
.
-Path './*/*' -прун
состоит в том, чтобы только сообщать о файлах на глубине 2 ( ./ A / B
, но не . /
или ./ A / B / C
). С GNU (и несколько других) Найти
. Найти Реализацию, вы можете заменить это с -Mindepth 2 -MaxDepth 2
.