49

У меня очень большая папка из 120000+ файлов. и мне нужно переместить их в другое место на том же компьютере (тот же раздел).

Я хотел бы использовать команду tar чтобы сгруппировать их как единое целое, а затем mv в конечное местоположение.

Какую команду мне нужно бежать , чтобы tar их все вместе и не сжимать ничего (мне нужен быстрый результат).

2 ответа2

71

tar не сжимает по умолчанию, просто не добавляйте параметр сжатия:

tar cvf myfolder.tar myfolder

Я включил комментарий Хеннес в свой ответ, так как он добавляет полезную информацию:

TAR (архив на магнитной ленте) изначально была программой Unix, используемой для создания архивов на ленте. Поскольку все устройства обрабатываются как файлы в Unix, легко записать их не на ленту, а в файл. Обычно это делается с помощью флага -f. Команда смолы CVF myfolder.tar моя_папка означает смолу, C, V reate erbose ф Ile filename_to_create what_to_tar. Здесь нигде нет сжатия. Архив tar (в виде файлов), где часто сжимается с помощью программы сжатия и получает расширение.Z (например, file.tar.Z). Позже это было включено в gtar с флагом z

2

Ответ @terdon правильный.

Но я допустил небольшую ошибку, выполнив tar cvf myfolder.tar.gz myfolder . Я хотел одинаковые конечные имена для файлов по тому же пути tar.gz даже если он не сжат.

Таким образом, если вы добавите что-то вроде .gz, .z в конец имени файла, который вы пытаетесь tar, приложение tar поймет, что вы хотите использовать некоторое сжатие, и оно будет применяться соответственно к тому, что вы положили (gz = gzip).

Поэтому, если вы хотите использовать расширение, подобное tar.gz , обязательно используйте флаг --no-auto-compress

--no-auto-compress    do not use archive suffix to determine the compression 
program

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .