Bagaimana cara memindahkan file yang meninggalkan symlink?


9

Bagaimana saya bisa memindahkan / menyalin file dari satu direktori ke direktori lain, meninggalkan symlink di direktori asli . Saya tahu ln -ssymlink membuat di tujuan, tapi saya ingin meninggalkan symlink di direktori sumber dan memindahkan file yang sebenarnya ke yang baru. Bagaimana saya bisa melakukan ini?


Jawaban terbaik untuk pertanyaan ini ada di sini: unix.stackexchange.com/a/228166/7000
Sridhar Sarnobat

Jawaban:


4

Memproses file satu per satu, misalnya,

cd $original_directory  
for i in <files to process> ; do  
    mv ./$i $new_directory/  
    ln -s $new_directory/$i ./$i
done

atau, jika menyalin, ganti mvbaris perintah dengan

    cp ./$i $new_directory/  
    rm ./$i   

1
Versi cp / rm - apa manfaatnya? Sepertinya itu melakukan hanya jauh lebih lambat :)
Sergey

@Sergey One dapat memeriksa status keluar cpdan melanjutkan untuk menghapus hanya jika berhasil.
lgarzo

@ lgarzo: Itu akan sangat berharga jika mvtidak memeriksa apakah salinan berhasil sebelum menghapus file - tetapi itu akan menjadi bug yang serius di mv:)
Sergey

Apakah "$ new_directory" dan "<file untuk diproses>" "variabel khusus", di mana argumen terakhir yang saya berikan pada skrip akan selalu dianggap "$ new_directory" dan argumen awal apa pun yang dianggap "<file untuk diproses>" ?. Apakah ini berlaku untuk skrip lain yang saya tulis? Atau Anda menyiratkan bahwa saya harus mengisi bagian yang kosong, seperti menggunakan "$ 1" dan "$ 2"? Maaf atas pertanyaannya tetapi saya sangat baru dalam hal pengkodean secara umum.
deox

1
Ganti $original_directorydan $new_directorydengan direktori yang ingin Anda pindahkan dari / ke, atau atur seperti ini original_directory=/home/walt/from. Untuk digunakan dalam skrip, Anda harus menguraikan argumen sendiri. Lihat getopts builtin di man bash.
waltinator
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.