Sepertinya mudah untuk menyinkronkan satu file ke file baru di subdirektori .... .... tanpa memindahkan subdirektori. Tetapi sesuatu tentang sintaks membingungkan dan bertentangan dengan apa yang saya harapkan. Berikut ini adalah test case:
mkdir temp
cd temp
mkdir deploy
echo "Contents of the build file!" > deploy/resources.build.php
ln -s deploy/resources.build.php deploy/resources.php
cat deploy/resources.php #bad symlink
Ini hanya membuat symlink yang rusak! Saya menjalankan ini dalam skrip penyiapan lingkungan build, jadi saya ingin menghindari mengubah direktori kerja saat ini jika memungkinkan.
ln -s deploy/resources.build.php resources.php
cat deploy/resources.php
Juga tidak berfungsi karena itu menciptakan symlink di direktori temp daripada subdirektori deploy.
cd deploy
ln -s resources.build.php resources.php
cd ..
Ini berfungsi, tetapi saya lebih suka tahu bagaimana melakukannya tanpa mengubah direktori.
Menggunakan jalur lengkap seperti:
/home/whatever/src/project/temp/stuff/temp/deploy/resources.build.php
Bekerja, tetapi tidak berat dan agak tidak praktis, terutama di lingkungan build di mana semua hal proyek mungkin berbeda antara build, dan sejenisnya.
Bagaimana saya bisa membuat symlink antara dua file dalam subdirektori, tanpa berpindah ke subdirektori itu dan keluar darinya, dan sambil memberikan file baru "alias" nama baru?
Ini membingungkan saya sampai saya menyadari symlink pada dasarnya adalah file konfigurasi. yaitu bagaimana saya akan menulis data jalur itu ke dalam file teks sederhana:
menjadi:
Kesalahan yang saya (dan mungkin OP) membuat adalah dalam berpikir ln kebutuhan untuk mengetahui tentang file itu menargetkan. Aku tidak peduli. Hanya menulis beberapa informasi jalur ke file. Ini adalah masuk akal ln perintah:
Karenanya:
menghasilkan file simlink yang disebut
resources.php
di./deploy
folder yang mereferensikan fileresources.build.php
di folder./deploy/deploy/
.Itu tidak seperti yang Anda inginkan dan memberikan tautan yang buruk (rusak). Tidak ada yang salah dengan tautannya, jika Anda meletakkan file itu di sana maka tautannya berfungsi. Namun, (seperti yang ditunjukkan oleh orang lain) yang saya dan OP inginkan adalah:
sumber