Bash script untuk memindahkan file

11

Saya seorang pemula dan saya butuh bantuan.

Saya mencoba membuat skrip untuk memindahkan beberapa file dari satu direktori di direktori lain. Sebelum membuat skrip, saya menguji perintah dan ternyata berfungsi:

mv /path/to/source  /path/to/destination

Setelah saya membuat skrip dengan nano:

#!bin/bash/
echo "mv /path/to/source  /path/to/destination"

Saya telah membuat skrip dapat dieksekusi dengan: chmod +x file dan kemudian dieksekusi sebagai ./filetetapi kesalahan berikut muncul:

bash: ./move.sh: /bin/bash/: bad interpreter: Not a directory

Saya mencoba dan dengan sudo ./filedan file bash tetapi tidak berfungsi.

Saya menggunakan Ubuntu yang diinstal dengan VirtualBox.

Vincioti Ana-Maria
sumber
Anda harus melihat pada Panduan Script Bash Lanjutan .
LiveWireBT

Jawaban:

20

Itu karena Anda menggunakan #!bin/bash/dan ini salah. Cara yang benar adalah:

#!/bin/bash

Ini disebut shebang dan memberi tahu shell program apa yang menafsirkan skrip, ketika dijalankan.

Hal lain: jalur absolut untuk bash interpreter di Ubuntu adalah /bin/bash, bukan bin/bash/atau yang lainnya. Anda dapat memeriksa ini menggunakan which bashperintah.

Dan satu hal lagi, tetapi mungkin Anda tahu ini: baris berikut:

echo "mv /path/to/source /path/to/destination"

hanya akan menampilkan pesan teks dengan mv /path/to/source /path/to/destination. Untuk benar-benar memindahkan file, gunakan skrip berikut:

#!/bin/bash
mv /path/to/source /path/to/destination

Seperti itulah tampilan skrip Anda.

Radu Rădeanu
sumber
1
fyi, Ubuntu secara historis dikemas versi jelek dari sangat berguna whichperintah . Perlu menginstal manual untuk mendapatkan gnu yang .
djeikyb