Tôi đã không đặt bất cứ điều gì của Cú đánh, và đó là khi tôi đang bước vào thế giới tuyệt vời của Python, tôi đã quên một chút về người bạn khác đã giúp tôi rất nhiều 🙂
Ở đây tôi đặt một cái gì đó cho những người đam mê Bash, như tiêu đề đã nói ... Tôi sẽ chỉ cho bạn cách kiểm tra xem có tệp hoặc thư mục nào trong hệ thống hay không, chỉ bằng cách sử dụng: if
Chúng tôi sẽ tạo một tệp .sh và cấp cho nó quyền thực thi, đối với điều này, chỉ cần đặt lệnh sau vào một terminal:
touch test.sh && chmod + x test.sh
Những gì anh ấy làm là tạo tệp (touch test.sh) và cũng cấp cho bạn quyền thực thi (chmod + x test.sh)
Sau đó, hãy viết những điều sau vào đó:
if [ -d /opt/ ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Cái gì đây?
Đơn giản 😀
Trong dòng đầu tiên - » if [-d / opt /];
Ở đây chúng tôi hỏi, liệu thư mục / opt / có tồn tại không? Có thư mục / thư mục, vì -d có nghĩa là thư mục hoặc thư mục.
Sau đó, trong trường hợp nó tồn tại, chúng tôi sẽ in trong terminal «Vâng, nó tồn tại.»(Đây là dòng 2 và 3)
Nếu không và / opt / KHÔNG tồn tại, thì chúng tôi sẽ in «Không, nó không tồn tại»(Dòng 4 và 5)
Sau đó, ở dòng cuối cùng (số 6) chúng ta đóng if và thế là xong.
Làm bài kiểm tra, nó sẽ cho bạn thấy rằng / opt / không tồn tại.
Nếu bạn muốn tôi hiển thị cho bạn văn bản khác (văn bản không tồn tại), hãy thay đổi / opt / cho bất kỳ thư mục nào khác không tồn tại trong hệ thống của bạn, ví dụ: / asd /
Như bạn có thể thấy, -d giúp chúng ta biết liệu thư mục có tồn tại hay không, bây giờ nếu chúng ta thay đổi -d thành -f nó là để kiểm tra sự tồn tại của các tệp (-d = thư mục, -f = tệp / tệp)
Ví dụ:
if [ -f /etc/hosts ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Đây là danh sách các tùy chọn:
-d - »Kiểm tra xem một thư mục nhất định có tồn tại không
-f - »Kiểm tra xem một tệp nhất định có tồn tại không
-w - »Kiểm tra xem một tệp nhất định có quyền ghi hay không
-x - »Kiểm tra xem một tệp nhất định có quyền thực thi hay không.
Và không có nhiều thứ khác để thêm vào 🙂
Tôi biết điều này sẽ rất hữu ích và thú vị cho những ai thích lập trình bằng Bash 😉
Liên quan
Một cách khác để làm điều đó mà không cần nếu… sau đó..else:
test -f /etc/hosts && elcomando
Hoặc cũng có
test ! -f /etc/hosts && echo "no se encontró el archivo"
Vân vân.
Đúng 😀
… O_O… Bạn có phải là Hugo, Hugo đến từ Cuba không? … Sử dụng Windows8, WTF !!!
Vâng, tôi đang làm quen với hệ điều hành này và nếu tôi phải nói thẳng rằng, điều duy nhất mà tôi thấy hữu ích là trình quản lý sao chép, nếu không thì cá nhân tôi cảm thấy rất khó khăn, đặc biệt là giao diện lai của nó và các ứng dụng tàu điện ngầm. Tôi thích nó ít hơn Vista và 7 (mặc dù hiệu quả hơn một chút so với những thứ này), điều mà tôi cũng không thích. Tất cả những gì tôi đang sử dụng nó là để chơi NFS13 và Skyrim, nhưng hệ điều hành này chiếm nhiều dung lượng đến mức tôi phải xóa phân vùng Linux của mình [snif].
Tuy nhiên, để bạn yên tâm, tôi sẽ nói với bạn rằng ngày hôm trước, tôi đã tải xuống Arch ISO cho tháng 86 và tôi dự định sẽ thử nó trong phiên bản x64-XNUMX của nó, ngay sau khi tôi nhận được bản repo (bạn có chứ?). Bây giờ, như tôi đã thấy, nó sử dụng các gói đã ký theo mặc định, nó giúp tôi tự tin hơn để đi sâu.
Và bố tôi cũng nói với tôi rằng ông ấy sẽ gửi cho tôi một chiếc Sony Xperia mà tôi muốn tận dụng để học lập trình cho Android, đó là một mong muốn đang chờ thực hiện. Bình tĩnh đi, tôi vẫn chưa đi đến mặt tối của thế lực, buahahahaha 😉
kiểm tra đàn ông
Chắc chắn.
Wenas! ..
Chúng ta có thể tạo cùng một ... .. nhưng thư mục được truyền dưới dạng tham số ..
if [ -d $1 ];
then
echo "Sí, sí existe."
else
echo "No, no existe"
fi
Và chúng tôi gọi nó là:
./test.sh / opt /
Lời chào..
IF không phải là một chu kỳ xD
Nó phù hợp với tôi giống như một chiếc găng tay cho một kịch bản tôi đang làm. Sử dụng ký tự đại diện có hợp lệ không? Ví dụ: để tìm xem có .mp4 nào không, sau đó chạy thứ gì đó trên chúng.
if [-f * .mp4];
...
Vâng, nó hoàn toàn hợp lệ ..
Ngay cả thông qua các tham số .. "* .mp4"
Ví dụ:
if [ -f $1 ];
then
rm -r $1
else
ls
fi
Nếu bạn gọi nó: ./test.sh * .mp4
Nếu nó tìm thấy các tệp .mp4, nó sẽ xóa chúng ... ... nhưng nó không liệt kê các tệp trong thư mục đó ...
Cảm ơn vì những phản hồi và lời khuyên! 🙂
Bạn đã bỏ lỡ f xD
rm -rf $ 1
Điều này là thú vị hơn!
Thật tuyệt vời !!!, Mỗi ngày tôi yêu Linux nhiều hơn, Windows đã bị hạ xuống một góc tối nào đó trong Ổ cứng của tôi, thứ sắp bị xóa để nhường chỗ cho Linux.
Tuyệt vời! .. ..thì hãy thực hiện bước tiếp theo .. và lấy nó ra ..
6 tháng trước khoảng. Tôi chỉ có GNU / Linux trên tất cả các máy của mình và tôi không cần thêm .. .. không phải W $ .. hay Wine .. .. và tôi còn hạnh phúc hơn như vậy .. 😉
Và tôi đang lây nhiễm cho môi trường xung quanh mình .. vì mọi người nhìn thấy tôi với Arch của tôi, nhanh chóng, hiệu quả và vui vẻ .. .. và họ yêu cầu tôi cài đặt Linux .. ..yeah! .. 😀
Bạn cũng có thể kiểm tra chúng để tìm các tiện ích mở rộng khác nhau, bạn có thể sử dụng một số thứ như
#! / bin / bash
Thư mục = $ HOME / Tải xuống
if [$ Thư mục]; sau đó
echo "Đây là danh sách các loại tệp:"
echo "mp1, mp2, mp3, mp4, wav, flac, flaad, aud, midi"
ls {* .mp ?, *. wav, *. fla, *. aud * .midi}
fi
sử dụng {} cho phép bạn chỉ định nhiều tiện ích mở rộng trong trường hợp này, việc sử dụng "?" , là một ký tự đại diện, cho phép bạn lấy "Bất kỳ ký tự nào".
Tôi hy vọng nó sẽ giúp bạn
Tôi khuyên bạn nên sử dụng lệnh find [directory] [search_pattern] –exec [command] {} \
Nó không hoạt động, tôi đặt các tệp này vào thư mục:
AB20160420.TXT
AB20160421.TXT
AB20160422.TXT
AB20160423.TXT
AB20160424.TXT
AB20160425.TXT
search.sh
#! / bin / bash
PATH = / tmp / TEST
cd $ ROUTE
ls -la | awk '{print »« $ 9}'
nếu [[-f AB.TXT]]; sau đó
echo »Nhập IF nếu có AB.TXT »
fi
if [-f AB20160422.TXT]; sau đó
echo "đầu vào cho một tệp AB cụ thể"
fi
khi tôi đặt [-f AB.TXT] đưa ra lỗi
khi tôi đặt [[-f AB.TXT]] không báo lỗi nhưng không tìm thấy tệp
nó chỉ hoạt động khi tôi đặt một tệp cụ thể, ví dụ:
if [-f AB20160422.TXT]; sau đó
Tôi không thể làm cho nó hoạt động với các ký tự đại diện * hoặc?
#! / usr / bin / env bash
#.encoding = utf-8.
NỘI DUNG
EXIT_OK = 0
EXIT_BAD = 66
BOLD = »\ 033 [1m»
NC = »\ 033 [0 phút»
ĐỎ = »\ 033 [31 phút»
nếu [! "$ 1"];
sau đó
echo "thiếu một tham số"
thoát khỏi $ EXIT_BAD
fi
cd "$ 1"
tệp = »ls -h1 $ 1»
cho tệp trong $ ($ files); làm
echo -e "bạn có thể làm bất cứ điều gì với $ BOLD $ file $ nc tại đây"
thực hiện
thoát khỏi $ EXIT_OK
@KZ, hãy nói thêm về điều này: "và đó là bởi vì tôi đang bước vào thế giới tuyệt vời của Python"!
HAHAHAHA nah ... từng chút một 🙂
Tôi vẫn chỉ là một người mới làm quen với Python, tôi hầu như không có thời gian để dành hàng giờ đồng hồ cho nó, vì vậy tôi chậm có, chậm nhưng chắc trong quá trình học của mình 😀
Cảm ơn bạn rất nhiều 😀 mới hôm qua tôi đã nghĩ cách làm điều này.
điều này với ncurses là tuyệt vời 🙂
trong 1 từ… TUYỆT VỜI!
Trong một thời gian dài, tôi đã hoàn thiện một tập lệnh để thực hiện tải xuống từ Internet, nhưng tôi gặp sự cố là nó đã tải xuống các tệp mà nó yêu cầu 1 và nhiều lần nữa mà không thể xác minh sự tồn tại của 1ro.
Hướng dẫn rất tốt.
Đóng góp to lớn, ở đây từ Chile được đánh giá cao.
Mỗi ngày LINUX đều làm tôi ngạc nhiên,
Phần mềm miễn phí tồn tại lâu dài MIERDAAAA.
phục vụ cho
kiểm tra xem tệp có phải từ một thư mục không
Nếu tôi muốn kiểm tra sự tồn tại của bất kỳ tệp nào trong đường dẫn «/ tmp / receiver», hãy thực hiện bất kỳ lệnh nào, nó sẽ như thế nào?
Tôi sẽ rất biết ơn
Liên quan
Thưa, và để xác định bằng IF nếu tệp được điền đầy đủ ???. Tôi hỏi điều này bởi vì khi bạn đang điền tệp để truyền, nó có thể lấy nó ngay cả với một nửa dữ liệu.
Xin chào và cảm ơn vì phản hồi của bạn.
Tôi nghĩ bạn cũng nên thêm một ví dụ, chẳng hạn như "Kiểm tra xem không có" "tệp" hoặc "thư mục" chẳng hạn
để kiểm tra xem nó KHÔNG tồn tại, ví dụ: sử dụng một biến->
Thư mục
#! / bin / bash
Thư mục = »$ HOME / Thư mục thử nghiệm»
Tệp = »$ HOME / Tệp kiểm tra»
nếu [! -d "$ Thư mục"]; sau đó
echo "Không có $ Directory"
echo "Đang tạo ->" $ Directory "
mkdir "$ Directory"
khác
echo "Thư mục" $ Directory "đã tồn tại
fi
nếu [! -d "$ Tệp"]; sau đó
echo "Tệp $ không tồn tại"
echo "Đang tạo ->" $ File "
chạm vào "$ File"
khác
echo "Tệp" $ File "đã tồn tại
fi
khi bạn thực hiện kiểm tra mkdir sau này nếu thiết bị đầu cuối có thể tạo nó hay không vì nó có thể phá vỡ các quả bóng nếu đó là một thư mục dưới dạng thư mục gốc hoặc hệ thống.
Xin chào KZKG ^ Gaara một truy vấn như tôi sẽ làm để sử dụng curl. Tôi muốn biết cách tôi thực hiện từ bảng điều khiển đến ping url để xem liệu nó có sẵn không http://portal.com/directorio/archivo1.php Nơi file1 sẽ lưu trữ các IP truy cập, đó là để theo dõi một nhóm, tôi cần thực hiện ghim đó mỗi nửa giờ để tôi biết IP công cộng vì nó thay đổi theo thời gian và tôi không thể kết nối bằng ssh .
Xin chào cảm ơn bạn trước Chúa phù hộ cho bạn.
Chào bạn
Đầu tiên, bạn phải nói rằng biến IP (ví dụ) là nội dung của tệp đó, để làm được điều này, bạn phải:
1. Tải xuống tệp
2. Xem nội dung của nó và lấy IP từ đó
3. IP đó là biến
Ví dụ:
Tại đây chúng tôi tải xuống tệp - »wget http://portal.com/directorio/archivo1.php -o tệp.html
Sau đó, chúng tôi gán một biến nội dung của nó: - »: $ {IP: =` cat file.html`}
.. giả sử rằng nội dung của tệp đó chỉ có IP, nếu không, bạn sẽ phải làm việc với grep, awk hoặc head.
Khi bạn có IP là một biến, phần còn lại là thứ đơn giản nhất trên thế giới 🙂
Nếu bạn muốn, hãy viết thư cho tôi qua email (kzkggaara[at]desdelinux[dot]net) Tôi rất sẵn lòng giúp đỡ bạn
Cảm ơn bạn rất nhiều kzkggaara rất biết ơn.
Chào bạn, mình không hiểu lắm về tin học và không biết bài này có liên quan đến vấn đề mình gặp phải không.
Tôi bình luận trong trường hợp bạn đọc tôi, mặc dù bài đăng từ một năm trước:
Hóa ra là tôi đã tạo một thư mục trên máy tính để bàn của mình để lưu trữ một số video. Vâng, tôi đã xóa những video đó vì tôi không còn cần chúng nữa và bây giờ thư mục này cho tôi biết rằng nó không tồn tại (mặc dù nó hiển thị trên màn hình của tôi).
- Đó là vấn đề đầu tiên tôi gặp phải:
Tôi không thể xóa thư mục.
- Vấn đề thứ hai và tôi nghĩ quan trọng hơn:
Trong một nỗ lực để xóa thư mục, tôi đã đặt một thư mục ẢNH. Bây giờ khi tôi mở thư mục "không tồn tại" thì nó trống và ẢNH không có ở đó.
Tôi có thể khôi phục ảnh như thế nào? Tôi đã đưa ra tùy chọn bên trong thư mục "Hiển thị tài liệu ẩn" nhưng thư mục ẢNH không xuất hiện.
Tôi hy vọng bạn có thể biết làm thế nào nó được giải quyết.
Cảm ơn bạn.
Có hai người dùng là người dùng chính: root và your_user (ví dụ: natalia). Cả hai đều có thư mục cá nhân. your_user trong / home và root trong / (thư mục gốc). Bằng cách nhấp chuột phải vào thư mục xem nó thuộc về ai. Nếu nó được root bằng trình quản lý tệp của bạn bằng sudo hoặc gksu hoặc kdesu tùy thuộc vào môi trường bạn sử dụng, hãy truy cập thư mục gốc -> root -> Desktop và bạn có thể sẽ tìm thấy ảnh và bạn có thể xóa thư mục. Một số bản phân phối khi bạn không phải là chủ sở hữu của tệp hoặc thư mục và không có quyền truy cập cho bạn biết thư mục / tệp không tồn tại. Nếu bạn là chủ sở hữu và bạn không phải root, hãy làm tương tự với trình quản lý tệp với sudo, v.v. và đi tới thư mục gốc -> / home -> personal_folder -> Desktop và xem ảnh có ở đó không và bạn có thể xóa thư mục hay không.
Nếu điều này không hoạt động, bạn sẽ phải xem các tùy chọn khác từ thiết bị đầu cuối (bảng điều khiển).
Xin chào, bạn thế nào? Tôi đang làm một công việc ở bash và tôi muốn biết cách xác minh xem có thư mục nào được nhập từ bàn phím không, chẳng hạn
#! / bin / bash
đọc tuyến đường
#Enter ~ / Máy tính để bàn
# Sau đó, tôi cố gắng điều hướng thư mục đó
đường dẫn cd $
# Tôi nhận được thông báo bash sau: cd: ~ / Desktop: Tệp hoặc thư mục không tồn tại
Câu hỏi của tôi là, tôi có thể làm gì để tôi nhập nó từ bàn phím và lấy nó làm đường dẫn thư mục?
Và làm cách nào tôi có thể biết nếu một nhóm tồn tại,
tốt Tôi có một vấn đề trong canaima của tôi khi tôi nhấn nút cunaguaro nó nói rằng không có tệp hoặc thư mục như nó sẽ làm để giải quyết vấn đề đó và phần còn lại không mở được cunaguaro, xin cảm ơn.
Làm thế nào để bạn thực hiện if trong BASH nếu tên tệp có khoảng trắng?
Ví dụ:
Dữ liệu tháng XNUMX.xlsx
Để hỏi xem tệp có tồn tại không
Carlos, như thế này:
if [["$ variable" == Data \ month \ of \ April.xlsx]]; then echo 'match'; fi
Bạn cũng có thể:
if [["$ variable" == 'Dữ liệu của tháng April.xlsx']]; then echo 'match'; fi
Một lựa chọn khác:
[["$ Variable" == 'Dữ liệu của tháng April.xlsx']] && echo 'đối sánh' || echo 'không khớp'
Ở một số khu vực tối của Internet, họ khuyên bạn nên sử dụng [[]] thay vì [] và nếu bạn định so sánh các số thì: ((biến> = 3)) && echo 'biến lớn hơn hoặc bằng 3' || echo 'biến nhỏ hơn 3'
Do đó, đối với các số:
if ((số! = 4)); sau đó echo "$ {number} không phải là 4"; khác echo "$ {number} là 4"; fi
Làm thế nào bạn có thể tạo mã để xác thực nếu thư mục có một văn bản cụ thể, để có thể chỉnh sửa nó.
ví dụ:
if (text1)
không làm gì cả
khác
thay đổi text1 thành text2
một câu hỏi, làm thế nào nó sẽ được kiểm tra mỗi 15 giây xem tệp có tồn tại hay không, cảm ơn bạn.
Xin chào,
điều này:
if [-w / home / Komun / Logs / ti]; sau đó
Tìm hiểu xem tệp có thể ghi được không. Nhưng nó dựa trên quyền của người dùng. Nó có thể được thực hiện để biết nếu nhóm hoặc những người khác có quyền?