Cách kiểm tra xem tệp có tồn tại trong bash hay không

How Check If File Exists Bash



Có một số cách để kiểm tra tính khả dụng của tệp trong Linux. Lệnh kiểm tra trong kịch bản bash là một trong những cách tiếp cận quan trọng để kiểm tra sự tồn tại của tệp.
Trọng tâm của hướng dẫn này là thảo luận về sự tồn tại của một tệp trong hệ thống của bạn thông qua kịch bản bash:

Cách kiểm tra sự tồn tại của tệp bằng cách sử dụng tập lệnh bash:

1) Bằng cách nhập tên tệp vào thiết bị đầu cuối:







Trước tiên, chúng ta cần tạo một tệp kịch bản bash, sử dụng lệnh được đề cập bên dưới:



$chạm vàotestfile.sh

Tên của tệp tôi đã tạo là testfile.sh, phần mở rộng .sh cho biết tệp kịch bản shell:







Mở testfile.sh trong bất kỳ trình soạn thảo văn bản nào. Sau đó viết script, lưu nó bằng cách nhấn lưu.

Một cách là tìm tệp bằng cách yêu cầu tên tệp từ người dùng trong thiết bị đầu cuối.



Sử dụng -NS để kiểm tra sự tồn tại của tệp.

Viết kịch bản dưới đây:

#! / bin / bash
quăng đi 'Nhập tên tệp của bạn'
đọcnewfile1
nếu như [ -NS '$ newfile1' ]
sau đó
quăng đi 'Tệp được tìm thấy'
khác
quăng đi 'Không tìm thấy tệp'
thì là ở

Quay lại thiết bị đầu cuối và chạy tệp để in đầu ra:

./filename.sh

Thông báo bị từ chối quyền sẽ được hiển thị trong thiết bị đầu cuối.

Làm cho nó có thể thực thi được bằng cách thực hiện lệnh được đề cập bên dưới:

$chmod+ x testfile.sh

Nhập tên tệp và nó sẽ in đầu ra:

2) Bằng cách nhập tên tệp trong khi viết tập lệnh:
Một cách khác để tìm tệp bằng cách đặt tên tệp trong khi viết tập lệnh. Chúng tôi có ba cách để kiểm tra tính khả dụng của tệp. Cách đầu tiên sử dụng lệnh kiểm tra, lệnh thứ hai sử dụng if với một biểu thức trong dấu ngoặc vuông và lệnh thứ ba cũng sử dụng if trừ dấu ngoặc vuông kép như được chỉ ra bên dưới:

  1. test EXPRESSION.
  2. nếu [EXPRESSION]
  3. nếu [[EXPRESSION]]

Hãy hiểu nó với các ví dụ:

1) kiểm tra [Biểu thức]
Sao chép tập lệnh đã cho và dán vào trình chỉnh sửa, lưu nó:

#! / bin / bash
tên tập tin= file1
nếu như kiểm tra -NS '$ filename';
sau đó
quăng đi '$ tệpđã tìm thấy.'
khác
quăng đi '$ tệpđã không được tìm thấy '
thì là ở

Đầu ra:

Vì không có tệp nào như vậy trong thư mục của tôi, do đó mã hiển thị thông báo Không tìm thấy tệp.

2) nếu [Biểu thức]

Sao chép tập lệnh sau để kiểm tra xem tệp có tồn tại hay không:

#! / bin / bash
tên tập tin= myfile.txt
nếu như [ -NS '$ filename' ];
sau đó
quăng đi '$ filenameđã tìm thấy.'
khác
quăng đi 'tên tập tin không được tìm thấy'
thì là ở

Đầu ra:

3) nếu [[Biểu thức]]

Sao chép tập lệnh được viết dưới đây và dán nó vào thiết bị đầu cuối:

#! / bin / bash
tên tập tin= testfile
nếu như [[ -NS '$ filename' ]];
sau đó
quăng đi '$ filenameđã tìm thấy.'
khác
quăng đi '$ filenameđã không được tìm thấy '
thì là ở

Đầu ra:

Để kiểm tra thư mục:

3) Bằng cách nhập tên thư mục trong khi viết script

Sử dụng -NS cờ để kiểm tra sự tồn tại của một thư mục.

Trong tập lệnh được đề cập bên dưới, dir11 là biến mà bạn lưu trữ tệp mà bạn đang tìm thấy; trong ví dụ này, tôi muốn kiểm tra tên thư mục testDir có tồn tại hay không.

#! / bin / bash
dir11= testDir
nếu như [ -NS '$ dir11' ]
sau đó
quăng đi 'Thư mục đã được tìm thấy'
khác
quăng đi 'Thư mục không được tìm thấy'
thì là ở

Đầu ra:

2) Bằng cách nhập tên tệp vào thiết bị đầu cuối:
Khi bạn chạy lệnh trong terminal để kiểm tra xem thư mục có tồn tại hay không, bạn bắt buộc phải nhập tên thư mục mà bạn đang tìm kiếm:

#! / bin / bash
quăng đi 'gõ tên thư mục của bạn.'
đọcDir1
nếu như [ -NS 'Dir1' ]
sau đó
quăng đi 'thư mục đã được tìm thấy'
khác
quăng đi 'thư mục không được tìm thấy'
thì là ở

Đầu ra:

Kiểm tra tệp mà không sử dụng câu lệnh if:

Lệnh kiểm tra có thể được thực hiện mà không cần lệnh if. Nó sẽ chỉ hiển thị đầu ra nếu tệp tồn tại; nếu không, sẽ không có đầu ra:

Viết kịch bản:

  1. kiểm tra -NSmyfile.txt&& quăng đi 'tập tin đã được tìm thấy'

  2. [ -NSmyfile.txt] && quăng đi '$ tệpđã được tìm thấy.'

  3. [[ -NSmyfile.txt]] && quăng đi '$ tệpđã được tìm thấy.'

Đầu ra:

Kiểm tra thư mục mà không sử dụng câu lệnh if:

Sử dụng các câu lệnh được đề cập dưới đây để kiểm tra một thư mục có tồn tại hay không:

  1. [[ -NStestDir]] && quăng đi 'thư mục không tồn tại'

  2. 2) [ -NStestDir] && quăng đi 'thư mục không tồn tại'

Đầu ra:

Kiểm tra nhiều tệp / Thư mục:

1) Kiểm tra nhiều tệp với câu lệnh if:
Sử dụng cờ -a để kiểm tra sự tồn tại của các tệp khác nhau thay vì sử dụng các câu lệnh if / else lồng nhau:

#! / bin / bash
nếu như [ -NSnew_file.txt-đến -NSnewfile.txt];sau đó
quăng đi 'Cả hai tệp đều tồn tại.'
thì là ở

Một cách khác là:

#! / bin / bash
nếu như [[ -NSnew_file.txt&& -NSnewfile.txt]];sau đó
quăng đi 'Cả hai tệp đều tồn tại.'
thì là ở

Đầu ra:

2) Kiểm tra nhiều tệp mà không sử dụng câu lệnh if:
Sử dụng câu lệnh sau để kiểm tra nhiều tệp đồng thời 1 mà không cần sử dụng if:

  1. [[ -NSnew_file.txt&& -NSnewfile.txt]] && quăng điCả hai tệp đều thoát.

  2. [[ -NSnew_file.txt&& -NSnewfile.txt]] && quăng điCả hai tệp đều thoát.

Đầu ra:

Phần kết luận:

Bài viết này đã chỉ ra cách sử dụng bash scripting để kiểm tra một tệp hoặc một thư mục. Chúng tôi đã sử dụng các tùy chọn khác nhau để kiểm tra tính khả dụng của tệp. Đầu tiên, chúng tôi sử dụng lệnh kiểm tra với các cờ khác nhau. Sau đó, chúng tôi đã học cách sử dụng if, if-else lồng nhau và không có câu lệnh if để kiểm tra tệp hoặc thư mục. Chúng tôi cũng đã xem xét cách kiểm tra nhiều tệp hoặc thư mục.