Я хочу переместить некоторые свои файлы в каталоге к другому диску и создать символьную ссылку для каждого из них в старом каталоге, который укажет на новый каталог.
Например,
[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
У меня есть слишком много файлов для перемещения настолько делающий, вручную потребуется много времени. То, каков самый легкий путь, должно сделать это?
Я думаю, вам нужно определить glob:
для i в `ls *`; сделать mv $ i / mnt / backup; ln -s / mnt / backup / $ i $ i; done
Или, если это много файлов, ls может подавиться, и в этом случае это:
find ./* -type f -exec mv {} / mnt / backup / \; -exec ln -s / mnt / backup / {} {} \;