Por que o cp não copia arquivos?

3
$ ls -la /tee/mysql
total 28675
drwxrwxrwx 1 root root      448 Jun 25 13:52 .
drwxrwxrwx 1 root root     2896 Jun 25 12:12 ..
-rwxrwxrwx 1 root root 18874368 Jun 25 13:19 ibdata1
-rwxrwxrwx 1 root root  5242880 Jun 25 13:52 ib_logfile0
-rwxrwxrwx 1 root root  5242880 Jun 25 13:19 ib_logfile1
drwxrwxrwx 1 root root      984 Jun 25 11:23 mysql
$ sudo ls -la /var/lib/mysql.old
total 88887336
drwx------  6 mysql mysql        4096 Jun 25 11:23 .
drwxr-xr-x 41 root  root         4096 Jun 25 13:15 ..
-rw-r--r--  1 mysql mysql           0 Apr 26 11:10 debian-5.5.flag
-rw-rw----  1 mysql mysql 91010105344 Jun 25 12:12 ibdata1
-rw-rw----  1 mysql mysql     5242880 Jun 25 12:12 ib_logfile0
-rw-rw----  1 mysql mysql     5242880 Jun 25 11:23 ib_logfile1
drwx------  2 mysql mysql        4096 Jun 20 17:22 m
drwx------  2 mysql mysql        4096 Apr 26 11:10 mysql
-rw-rw----  1 mysql mysql           6 Apr 25 06:40 mysql_upgrade_info
drwx------  2 mysql mysql        4096 Apr 26 11:10 performance_schema
drwx------  2 mysql mysql        4096 Feb 12 16:22 test
$ sudo cp -p -f -r /var/lib/mysql.old /tee/mysql
$ sudo ls -la /tee/mysql
total 28676
drwxrwxrwx 1 root root      552 Jun 25 14:09 .
drwxrwxrwx 1 root root     2896 Jun 25 12:12 ..
-rwxrwxrwx 1 root root 18874368 Jun 25 13:19 ibdata1
-rwxrwxrwx 1 root root  5242880 Jun 25 13:52 ib_logfile0
-rwxrwxrwx 1 root root  5242880 Jun 25 13:19 ib_logfile1
drwxrwxrwx 1 root root        0 Jun 25 11:23 mysql
drwxrwxrwx 1 root root      984 Jun 25 11:23 mysql.old
$ df |grep tee # blocks used available percent-used mounted
/dev/sda1                       2930232316 186242116 2743990200   7% /tee
$ cd
$ touch test
$ ls test*
test
$ cp -n test test2 # test whether cp works at all
$ ls test*
test  test2

Por que não sudo cp -p -f -r /var/lib/mysql.old /tee/mysql copia todo o conteúdo de mysql.old em mysql ?

    
por msh210 25.06.2013 / 21:17

2 respostas

4

Na verdade, você copiou o diretório mysql.old para /tee/mysql :

Mas eu acho que isso não é o que você queria. Eu suponho que talvez você deseje copiar todos os subdiretórios e arquivos do diretório mysql.old para /tee/mysql . Para fazer isso, use o seguinte comando:

sudo cp -p -f -r /var/lib/mysql.old/* /tee/mysql

Portanto, não se esqueça de /* no final do diretório de origem. Geralmente, para este propósito, use:

cp -pfr <SourceDirectory>/* <DestinationDirectory>

Veja man cp para saber mais sobre o comando cp .

    
por Radu Rădeanu 25.06.2013 / 22:28
0

Eu apenas tentei o comando que você usou e funcionou. Mas vá em frente e tente este:

sudo cp -r -fHip -- <Source_Directory> <Target_Directory>

Aqui está o que eu fiz:

sudo cp -r -fHip -- /home/mitch/Test/* /home/mitch/test1

e copiou todos os arquivos e pastas para o destino.

    
por Mitch 25.06.2013 / 21:45