Как избежать копирования «..» при использовании команды cp в терминале?

Как сказано в выводе вашего вопроса, зомби-процесс — это процесс, который завершил выполнение, поэтому вы никогда не сможете подключиться к нему с помощью gdb -все, что сейчас есть — это запись в таблице процессов ядра без каких-либо соответствующий процесс или ресурсы, поэтому gdb не к чему прикрепляться.

Единственная причина существования этой записи в таблице процессов, помеченной как зомби, заключается в том, что ее статус выхода должен быть прочитан.

1
02.06.2019, 12:21
2 ответа

В вопросе явно не указано, хотите ли вы копировать только скрытые имена или все файлы. Точно так же, хотите ли вы скопировать содержимое каких-либо подкаталогов. Я собираюсь предположить, что вы хотите скопировать только скрытое имя — это текущий каталог (, потому что вы, кажется, хотите сделать это с помощью своей команды ).

Ваша команда не скопирует все файлы в родительский каталог, если вы также не использовали опцию -Rсcp(или -rс GNUcp)для выполнения рекурсивного копирования. Без опции -Rcpбудет жаловаться на то, что .и ..являются каталогами, но не будет их копировать.

В оболочке bashустановите переменную оболочки GLOBIGNOREв:-список имен с разделителями, до которых вы не хотите, чтобы оболочка расширяла шаблоны подстановки имен файлов,

GLOBIGNORE='.:..'

затем скопируйте файлы,

cp /root/test/.* /root/test1

Чтобы установить GLOBIGNOREвременно, только для операции копирования, используйте вспомогательную оболочку -:

( GLOBIGNORE='.:..'; cp /root/test/.* /root/test1 )
0
28.01.2020, 02:11

Стандартная идиома для обозначения всех имен, начинающихся с точки, кроме .и .., — .??*. Таким образом, ваша команда будет

cp /root/test/.??* /root/test1
-1
28.01.2020, 02:11

Теги

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