Бит странного здесь
Я пытался скопировать данные от одного каталога до другого и бросил целевой операнд от CP. Команда See
root@server:/home/pp/test1# cp -r ../dhcppc0/*
Команда работала больше часа, поскольку исходный каталог содержал более чем 135 ГБ данных и много каталогов.
Я контролировал это и наблюдал, что доступный диск в системе понизился, и оставил его в течение ночи. Утром я отметил, что сессия к серверу испытала таймаут, видел, что доступное дисковое пространство понизилось далее, но файлы/каталоги не были скопированы.
На более близком контроле я видел свою команду CP и заметил, что забыл помещать a'.' как второй операнд для направления копии к моему текущему каталогу, и это НЕ дало ошибку?
Таким образом, мой вопрос, какой и куда все дисковое пространство уводят? и как я возвращаю его? есть ли некоторое временное пространство буфера где-нибудь в системе, которую я могу очистить?
Исходный каталог содержит данные приблизительно на 135 ГБ приблизительно в 1M файлы.
Любая справка значительно ценилась бы!
На более близком контроле я видел свою команду CP и заметил, что забыл помещать a'.' как второй операнд для направления копии к моему текущему каталогу, и это НЕ дало ошибку?
Почему должен он? В cp -r ../dhcppc0/*
, cp
не обрабатывает ../dhcppc0/*
. Оболочка расширяется ../dhcppc0/*
, и затем передает расширенное содержание cp
. Таким образом, если это расширилось в ../dhcppc0/bar
, ../dhcppc0/baz
, и ../dhcppc0/foo
, затем расширенная команда была бы:
cp -r ../dhcppc0/bar ../dhcppc0/baz ../dhcppc0/foo
И если foo
каталог, cp
счастливо скопирует все содержание других каталогов к foo
.
[W] шляпа и куда все дисковое пространство уводят? и как я возвращаю его? есть ли некоторое временное пространство буфера где-нибудь в системе, которую я могу очистить?
Сделать echo ../dhcppc0/*
, посмотрите на фамилию, которая подходит, и осмотрите тот каталог.
Поэтому при копировании каталогов или использовании подстановочных знаков, всегда используйте -t
парамать:
cp -t . ../dhcppc0/*
# or cp --target-directory . ../dhcppc0/*
И обратите внимание, что Вы пропустите любые точечные папки и точечные файлы, если Вы будете использовать *
. Вы не должны использовать его, настолько лучше, чтобы просто сделать:
cp -t . ../dhcppc0/