Bash скрипт для переміщення файлів


11

Я початківець і мені потрібна допомога.

Я намагаюся зробити сценарій для переміщення деяких файлів з одного каталогу в інший каталог. Перш ніж створити скрипт, я перевірив команду, і вона працювала:

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

Після того, як я створив сценарій з nano:

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

Я зробив сценарій виконуваним за допомогою:, chmod +x file а потім виконано як, ./fileале з'являється наступна помилка:

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

Я спробував і з sudo ./fileфайлом bash, але він не працює.

Я використовую Ubuntu, встановлений з VirtualBox.


Спробуйте ознайомитись з розширеним керівництвом сценаріїв Bash .
LiveWireBT

Відповіді:


20

Це тому, що ти звик, #!bin/bash/і це неправильно. Правильний шлях:

#!/bin/bash

Це називається шебанг, і він повідомляє оболонці, з якою програмою інтерпретувати сценарій, коли він виконується.

Інша річ: абсолютний шлях для інтерпретатора bash в Ubuntu - це /bin/bashні, bin/bash/чи щось інше. Ви можете перевірити це за допомогою which bashкоманди.

І інша річ, але, напевно, ви це знаєте: наступний рядок:

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

відображатиме лише текстове повідомлення з mv /path/to/source /path/to/destination. Щоб дійсно перемістити файли, використовуйте наступний сценарій:

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

Ось так повинен виглядати ваш сценарій.


1
fyi, Ubuntu історично упакував шалену версію неймовірно корисної whichкоманди . Варто встановити вручну, щоб отримати гну який .
djeikyb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.