cp -v /var/www /var/www/dev
cp -vR /var/www/admin /var/www/dev
cp -vR /var/www/cron /var/www/dev
cp -vR /var/www/css /var/www/dev
cp -vR /var/www/files /var/www/dev
cp -vR /var/www/images /var/www/dev
cp -vR /var/www/js /var/www/dev
cp -vR /var/www/medlem /var/www/dev
cp -vR /var/www/snippets /var/www/dev
Это только первый файл, который не копирует файлы. Я знаю, что это далеко не лучшее решение, но да, оно работает довольно хорошо, если часть первого cp не копирует. Каждый cp кроме первого работает. Я хочу, чтобы первый копировал только файлы, а не заходил в каталоги и копировал. Я просто получаю сообщение об ошибке
cp: пропущенный каталог '/ var / www'
По умолчанию, cp
не скопирует каталоги. Это защищает Вас от случайного копирования слишком много.
$ cp -v /var/www /var/www/dev
cp: omitting directory `/var/www'
Для переопределения этого значения по умолчанию предоставьте -R
опция:
$ cp -vR /var/www /var/www/dev
`/var/www' -> `/var/www/dev/www'
причина, что это было единственной командой, которая перестала работать, состояла в том, что это было единственной командой, которая отсутствовала -R
.
Ответ John1024, действительно отвечает на вопрос, однако, я утверждал бы, что обоснование не совершенно точно. Это корректно, что по умолчанию эти cp
команда не скопирует каталоги, однако импликация, что это должно, прежде всего, защитить пользователя от "копирования слишком много", кажется маловероятной.
Ubuntu управляет файловой системой стиля Unix, которая использует понятие inodes
, чтобы описать filesystem
объект, быть ею файл или каталог.
каталог А является просто списком имен, присвоенных inodes
. В этом смысле визуальное представление, обеспеченное GUI, является своего рода иллюзией, т.е. каталог не является на самом деле 'контейнером' других файлов, а скорее списком имен файлов и inode pointers
.
.....a directory entry contains only a name for the associated file and a pointer
to the file itself. This pointer is an integer called the i-number (for index
number) of the file. When the file is accessed, its i-number is used as an index
into a system table (the i-list) stored in a known part of the device on which the
directory resides. The entry found thereby (the file's i-node) contains the
description of the file:...
— The UNIX Time-Sharing System, The Bell System Technical Journal, 1978
С этой точки зрения, мы видим, что копирование каталога, просто скопировало бы список имен и связалось inodes
; это было бы сродни созданию жесткой ссылки на каталог. Это - (вероятно), не фактическое намерение пользователя при копировании каталога. По всей вероятности, при копировании каталога с помощью эти cp
команда, пользователь намеревается сделать физическую копию фактических файлов данных в.
Поэтому я утверждал бы, что использование -r
опция при копировании каталогов, делает команду явной.
./teste.sh
только, когда Ваш сценарий оболочки расположен в текущем каталоге. Удалите запаздывающую точку.
– grooveplex
12 August 2016 в 22:03