Вопрос Перемещение каталогов


Если я использую cp команду скопировать каталог A во внутреннюю часть каталога B, удвоит ли объем пространства, который он занимает (каталог A + скопированная версия каталога A)? Я не могу представить, чтобы это было так, но нарушило бы время поиска на диске для файлов в этом каталоге?

Я новичок, поэтому я сожалею, если этот вопрос не имеет смысла.


4
2017-08-05 13:45


происхождения




ответы:


cp копирует файлы. Если вы укажете каталог (я никогда не тестировал это), он, вероятно, скопировал бы содержимое этого каталога и поместил бы все (включая исходную папку) в целевой каталог. Да, это создаст две копии целевого файла (ов) и да, это, вероятно, нарушит ряд подобных вещей.

Вы можете легко перетаскивать файлы в Nautilus, чтобы перемещать их естественным образом, без негативных последствий для оптимизации жесткого диска. mv команда в терминале будет делать то же самое. Это похоже на удобство использования команды cp:

mv </oldlocation/target> </newlocation/destination/>

Если целью является файл или каталог, а местом назначения является каталог.

ПРИМЕЧАНИЕ. Если вы используете mv </location/filenameA> <location/filenameB> он переименует файл. Например,

mv /etc/x11/xorg.conf /etc/x11/xorg.conf.backup

переименует xorg.conf текстовый файл xorg.conf.backup, Попробуйте выполнить поиск в Google полезных инструментов командной строки linux.

Другой опрятный трюк в командной строке использует параметр «человек». Например

mv man

или

sudo man

«Человек» означает ручной. Каждое приложение терминала имеет руководство, в котором подробно описывается характер приложения, все его варианты и определения для всего. Вы можете запустить man-функцию с помощью любой команды терминала, которую вы устанавливаете.


2
2017-08-05 14:05



Правильно, я так понимаю, я предполагаю, что я должен был задать вопрос, что если я скопирую каталог, это просто создаст другой указатель на то, где хранятся эти файлы (я принимаю последовательно на диске) или на самом деле записываю другой каталог. Размер места на диске или винт с тем, как он выглядит плохо. Как я уже сказал, я очень нуб, и, может быть, это слишком сложный вопрос для меня, чтобы понять ответ, не делая больше исследований. - RyanGC
Просмотрите несколько видео или статей о google / youtube о том, как работает файловая система Linux. Это ОЧЕНЬ отличается от Windows, это действительно захватывающе. Linux записывает файлы на жесткий диск физически в самом начале каждой полосы жесткого диска и продолжает следующую кодировку, если осталось какое-то место, и добавляет остаток на следующую полосу и так далее. Из-за этого это намного быстрее при доступе к файлам, чем Windows. Он также отображает файлы в цифровой форме, а не физически. Файлы не перемещаются полосами, как в Windows. Вам не нужно дефрагментировать в Linux. - Alex
Если вы используете cp чтобы скопировать каталог, он выдаст уведомление о том, что он игнорирует каталог и ничего не делает. Вы должны использовать -r (или лучше, -a для сохранения некоторых других атрибутов), чтобы скопировать каталог, поскольку он включает рекурсию (ввод в каталог для копирования его содержимого). - thomasrutter


Команда move в linux - это mv, видеть mv --help для получения дополнительной информации

это перемещает каталог и все подчиненные

mv -f dir1 /destinationDir

Это перемещение файлов из dir1 в dir2

mv -f dir1/* dir2

2
2017-08-05 13:56



Правильно, но я хочу иметь тот же самый каталог в другом каталоге. - RyanGC


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

ср - копии. По умолчанию будет сделана идентичная копия, заняв одинаковое пространство, хотя вы можете сказать cp, чтобы сделать жесткие ссылки (указатели на каждый файл) с помощью опции -l.

Если вы хотите создать копию папки, сделайте следующее:

cp -a source dest

Где -a означает «архив» или идентичную копию, включая папки и ссылки. Вы можете обменять его на -r, если вы хотите скопировать папки, но не ссылки.

Если вы хотите создать копию со ссылками на исходные файлы (изменение оригинала также изменяет копию и занимает гораздо меньше места), выполните следующие действия:

cp -l source dest

пер - ссылки. Он будет делать только ссылку, вы можете указать, что она указывает на ваш пункт назначения, и она займет только пространство, необходимое для указания на это.

Если вы хотите создать одну ссылку на папку, просто выполните следующее:

ln -s source dest

ПРИМЕЧАНИЕ: -s означает «символическую» ссылку. Потому что ln может создавать жесткие или мягкие (большинство людей называют эти «символические») ссылки. Жесткие ссылки могут указывать только на файлы и иметь другие ограничения, в то время как символические ссылки могут указывать на что угодно, включая папки. Для полной статьи о различиях между жесткими и мягкими ссылками см. Эту замечательную статью Вот,

милливольт - перемещает файлы или папки.

Для перемещения папок (или файлов) просто выполните следующее:

mv source dest

0
2017-09-04 01:42



Стоит отметить, что без -r или -a, cp будет копировать только файлы (то есть, source должен быть файлом) и будет игнорировать каталоги. - thomasrutter
Спасибо, сэр! :) - Nick Steele
cp -a Я также думаю, что владелец и группа ID. - WinEunuuchs2Unix