Tập lệnh Bash để di chuyển tập tin


11

Tôi là người mới bắt đầu và tôi cần sự giúp đỡ.

Tôi đang cố gắng tạo một tập lệnh để di chuyển một số tệp từ một thư mục trong thư mục khác. Trước khi tạo tập lệnh, tôi đã kiểm tra lệnh và nó đã hoạt động:

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

Sau khi tôi thực hiện kịch bản với nano:

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

Tôi đã tạo tập lệnh thực thi với: chmod +x file và sau đó thực thi như ./filenhưng lỗi sau xuất hiện:

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

Tôi đã thử và với sudo ./filevà bash tập tin nhưng nó không hoạt động.

Tôi đang sử dụng Ubuntu được cài đặt với VirtualBox.


Câu trả lời:


20

Đó là bởi vì bạn đã sử dụng #!bin/bash/và điều này là sai. Cách đúng là:

#!/bin/bash

Điều này được gọi là shebang và nó báo cho shell biết chương trình nào diễn giải kịch bản với, khi được thực thi.

Một điều nữa: đường dẫn tuyệt đối cho trình thông dịch bash trong Ubuntu là /bin/bash, không phải bin/bash/cái gì khác. Bạn có thể kiểm tra điều này bằng cách sử dụng which bashlệnh.

Và một điều nữa, nhưng có lẽ bạn biết điều này: dòng sau:

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

sẽ chỉ hiển thị một tin nhắn văn bản với mv /path/to/source /path/to/destination. Để thực sự di chuyển tập tin, sử dụng tập lệnh sau:

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

Đó là cách kịch bản của bạn sẽ trông như thế nào.


1
FYI, Ubuntu trong lịch sử đóng gói một phiên bản không hấp dẫn của vô cùng hữu ích whichlệnh . Nó đáng để cài đặt thủ công để có được gnu đó .
djeikyb
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.