Cách thoát khỏi - - trong bash [trùng lặp]


14

Có thể trùng lặp:
Các công cụ Unix: nếu một tệp được đặt tên trừ đi một cái gì đó thì sao?

Xin vui lòng cho tôi biết làm thế nào để thoát khỏi điều này:

[root @ unix ~] # ./-sh
-bash: ./-sh: Quyền bị từ chối
[root @ unix ~] # chmod + x -sh
chmod: chế độ không hợp lệ: `-sh '
Hãy thử 'chmod --help' để biết thêm thông tin.
[root @ unix ~] #

# chmod a + x "\\ - sh" chmod: không thể truy cập `\\ - sh ': Không có tệp hoặc thư mục như vậy
soundhax

Câu trả lời:


24

Sử dụng --.

Ví dụ chmod +x -- -sh. Trong ngôn ngữ GNU, --phương tiện kết thúc của các tùy chọn, do đó -shkhông còn được phân tích cú pháp dưới dạng tùy chọn.

[Chỉnh sửa] Đã thêm ví dụ:

bọ cánh cứng: / home / hennes / test> touch - -sh

bọ cánh cứng: / nhà / hennes / test> ls -l - -sh
-rw ------- 1 người dùng hennes 0 2013-01-04 17:20 -sh

bọ cánh cứng: / home / hennes / test> chmod + x - -sh

bọ cánh cứng: / nhà / hennes / test> ls -l - -sh
-rwx ------ 1 người dùng hennes 0 2013-01-04 17:20 -sh

Thật thú vị, điều này dường như không hoạt động với tiếng vang GNU, mặc dù nó hoạt động với GNU printf. Điều này hoạt động : printf -- -sh. Và điều này không : echo -n -- -sh.
Lukas Pokorny
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.