ln
memang membutuhkan banyak argumen, tetapi jangan lupa untuk memberikan direktori target dalam kasus itu.
Jadi, dalam contoh Anda .
adalah direktori target, jadi semudah
ln -s ../source/*.bar .
Dari man ln
; perintah di atas menggunakan bentuk ke-3:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
- Pada formulir pertama, buat tautan ke TARGET dengan nama LINK_NAME.
- Dalam bentuk ke-2, buat tautan ke TARGET di direktori saat ini.
- Dalam formulir ke-3 dan ke-4, buat tautan ke setiap TARGET di DIRECTORY.
Anda dapat mencoba secara rekursif dengan menggunakan globstar (bash/zsh ditetapkan oleh:shopt -s globstar
):
ls -vs ../**/*.bar .
Atau jika daftarnya terlalu panjang, gunakan find
utilitas:
find .. -name \*.bar -exec ln -vs "{}" dest/ ';'
Ini akan membuat tautan di dest/
, atau ubah ke .
untuk folder saat ini.
Gunakan find
certainDir="/path/to/dir"
find -name "*.bar" -exec ln -s {} "$certainDir" \;
Selain itu, ingatlah untuk menggunakan jalur lengkap (bila memungkinkan) dengan symlink.
Bagaimana cara mengubah judul terminal judul Terminator, ZSH di Debian?
du -h dengan lebih banyak tempat desimal