cuốn sách gpt4 ai đã làm

Làm cách nào để mở tất cả các tệp trong một thư mục trong tập lệnh shell Bourne?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 23:54:52 32 4
mua khóa gpt4 Nike

Cách sử dụng trong tập lệnh shellđường dẫn tương đối hoặcđường dẫn tuyệt đối như một đối số dòng lệnh duy nhất?

Ví dụ: giả sử tôi có tập lệnh shell trên máy tính để bàn của mình và tôi muốn lặp qua tất cả các tệp văn bản trong một thư mục trong hệ thống tệp.

我尝试了 sh myshscript.sh/home/user/Desktop, nhưng điều này có vẻ không khả thi. Và làm cách nào để tránh tên thư mục, tên file chứa dấu cách?

myshscript.sh chứa:

cho tôi trong `ls`
do
con mèo $i
xong

câu trả lời hay nhất

Nhìn bề ngoài, bạn có thể viết:

cd "${1:-.}" || thoát 1
cho tập tin trong *
do
con mèo "$file"
xong

Trừ khi trong trường hợp này bạn thực sự không cần for xe đạp:

cd "${1:-.}" || thoát 1
con mèo*

sẽ hoàn thành công việc. Bạn có thể tránh điều này bằng cách cd vận hành:

mèo "${1:-.}"/*

danh sách (con mèos) tất cả các tệp trong một thư mục nhất định, ngay cả khi thư mục hoặc tên tệp chứa dấu cách, dòng mới hoặc các ký tự không thể quản lý khác. Thay vào đó, bạn có thể sử dụng bất kỳ mẫu hình cầu thích hợp nào * - Nếu bạn muốn tập tin .txt cuối cùng, sử dụng *.txt Như một mẫu chẳng hạn.

Điều này sẽ bị hỏng nếu bạn có quá nhiều tệp đến nỗi danh sách tham số quá dài. Trong trường hợp này bạn có thể muốn sử dụng find:

tìm "${1:-.}" -type f -maxdeep 1 -exec cat {} +

(注意 -độ sâu tối đa Đó là GNU find Sự mở rộng. )

tránh sử dụng ls Tạo danh sách tên tệp, đặc biệt khi tập lệnh phải mạnh mẽ về dấu cách, dòng mới, v.v. trong tên.

Làm cách nào để mở tất cả các tệp trong một thư mục trong tập lệnh shell Bourne? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/21564564/

32 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress