Я хочу переместить некоторые из моих файлов в каталоге на другой диск и создать символическую ссылку для каждого из них в старом каталоге, которая будет указывать на новый каталог.
Например,
[root@localhost olddir]# ls *.MYD
-rw-rw---- 1 mysql mysql 51940340 Mar 31 2014 zx2014033121.MYD
-rw-rw---- 1 mysql mysql 38341784 Apr 1 2014 zx2014033122.MYD
-rw-rw---- 1 mysql mysql 21838676 Apr 1 2014 zx2014033123.MYD
Теперь я хочу переместить их все в / mnt / backup и создать символическую ссылку для каждого из них, например:
[root@localhost olddir]# ls *.MYD
-rw-rw---- 1 mysql mysql 51940340 Mar 31 2014 zx2014033121.MYD -> /mnt/backup/zx2014033121.MYD
-rw-rw---- 1 mysql mysql 38341784 Apr 1 2014 zx2014033122.MYD -> /mnt/backup/zx2014033122.MYD
-rw-rw---- 1 mysql mysql 21838676 Apr 1 2014 zx2014033123.MYD -> /mnt/backup/zx2014033123.MYD
Мне нужно переместить слишком много файлов, поэтому выполнение этого вручную займет много времени. Как это сделать проще всего?
Я думаю, вам нужно определить глобус:
для i в `ls *`; сделать mv $ i / mnt / backup; ln -s / mnt / backup / $ i $ i; сделано
Или если это много файлов, ls может подавиться, и в этом случае это:
найти ./* -type f -exec mv {} / mnt / backup / \; -exec ln -s / mnt / backup / {} {} \;
for i in *; do mv $i /mnt/backup; ln -s /mnt/backup/$i $i; done