Как скопировать каталог в себя?

Попробуйте отключить антивирусное программное обеспечение и брандмауэр (лучше так автономно), перезагрузитесь и посмотрите, улучшится ли замедление.

3
задан 2 August 2017 в 20:02

6 ответов

Используйте rsync вместо cp:

rsync -Rr ./Desktop/ ./Desktop/sub/

Давайте проверим это:

$ cd /tmp
$ mkdir -p Desktop/sub
$ touch Desktop/a-file
$ ls -F Desktop
a-file sub/
$ cp ./Desktop ./Desktop/sub
cp: cannot copy a directory, './Desktop', into itself, './Desktop/sub/Desktop'

Однако rsync будет работа хорошо:

$ rsync -Rr ./Desktop/ ./Desktop/sub/
$ ls -F Desktop/sub/
Desktop/
6
ответ дан 22 May 2018 в 19:53
  • 1
    Я всегда забываю про rsync. +1 =) – Terrance 2 August 2017 в 19:57
  • 2
    @ Полностью большую часть времени я тоже об этом забываю;) – Ravexina 2 August 2017 в 20:01
  • 3
    @Ravexina спасибо. Существует ли чисто «cp» способ сделать это? Использование rsync - отличное решение, однако я слишком одержим поиском решения с помощью утилиты cp. – case_2501 2 August 2017 в 21:27
  • 4
    @ case_2501 ничего, что я знаю: / – Ravexina 2 August 2017 в 21:36
  • 5
    @Ravexina спасибо. Я бы проголосовал за ответ, но у меня нет репутации! Я собираюсь упорствовать немного дольше. Всегда хорошо иметь пару способов добиться того же результата. Если ничего не станет очевидным, я приму ответ. – case_2501 2 August 2017 в 21:45

Используйте rsync вместо cp:

rsync -Rr ./Desktop/ ./Desktop/sub/

Давайте проверим это:

$ cd /tmp $ mkdir -p Desktop/sub $ touch Desktop/a-file $ ls -F Desktop a-file sub/ $ cp ./Desktop ./Desktop/sub cp: cannot copy a directory, './Desktop', into itself, './Desktop/sub/Desktop'

Однако rsync будет работа хорошо:

$ rsync -Rr ./Desktop/ ./Desktop/sub/ $ ls -F Desktop/sub/ Desktop/
7
ответ дан 18 July 2018 в 09:11

Используйте rsync вместо cp:

rsync -Rr ./Desktop/ ./Desktop/sub/

Давайте проверим это:

$ cd /tmp $ mkdir -p Desktop/sub $ touch Desktop/a-file $ ls -F Desktop a-file sub/ $ cp ./Desktop ./Desktop/sub cp: cannot copy a directory, './Desktop', into itself, './Desktop/sub/Desktop'

Однако rsync будет работа хорошо:

$ rsync -Rr ./Desktop/ ./Desktop/sub/ $ ls -F Desktop/sub/ Desktop/
7
ответ дан 24 July 2018 в 19:16

Вы всегда можете использовать /tmp для передачи. (Без rsync)

~$ ls
1  2  3  a  b  c  ddd  w  wow
~$ cp -r . /tmp/TEMP
~$ mv /tmp/TEMP copy_dir
~$ ls
1  2  3  a  b  c  copy_dir  ddd  w  wow
~$ ls copy_dir/
1  2  3  a  b  c  ddd  w  wow

Или сделайте функцию:

function cpc() { cp -r . /tmp/cpc-$1 && mv /tmp/cpc-$1 .; }

Нравится это:

~$ function cpc() { cp -r . /tmp/cpc-$1 && mv /tmp/cpc-$1 .; }
~$ ls
1  2  3
~$ cpc hhh
~$ ls hhh
1  2  3
~$ ls
1  2  3  hhh
~$
0
ответ дан 22 May 2018 в 19:53

Вы всегда можете использовать /tmp для передачи. (Без rsync)

~$ ls 1 2 3 a b c ddd w wow ~$ cp -r . /tmp/TEMP ~$ mv /tmp/TEMP copy_dir ~$ ls 1 2 3 a b c copy_dir ddd w wow ~$ ls copy_dir/ 1 2 3 a b c ddd w wow

Или сделайте функцию:

function cpc() { cp -r . /tmp/cpc-$1 && mv /tmp/cpc-$1 .; }

Нравится это:

~$ function cpc() { cp -r . /tmp/cpc-$1 && mv /tmp/cpc-$1 .; } ~$ ls 1 2 3 ~$ cpc hhh ~$ ls hhh 1 2 3 ~$ ls 1 2 3 hhh ~$
0
ответ дан 18 July 2018 в 09:11

Вы всегда можете использовать /tmp для передачи. (Без rsync)

~$ ls 1 2 3 a b c ddd w wow ~$ cp -r . /tmp/TEMP ~$ mv /tmp/TEMP copy_dir ~$ ls 1 2 3 a b c copy_dir ddd w wow ~$ ls copy_dir/ 1 2 3 a b c ddd w wow

Или сделайте функцию:

function cpc() { cp -r . /tmp/cpc-$1 && mv /tmp/cpc-$1 .; }

Нравится это:

~$ function cpc() { cp -r . /tmp/cpc-$1 && mv /tmp/cpc-$1 .; } ~$ ls 1 2 3 ~$ cpc hhh ~$ ls hhh 1 2 3 ~$ ls 1 2 3 hhh ~$
0
ответ дан 24 July 2018 в 19:16

Другие вопросы по тегам:

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