Tên tệp có không gian hiển thị dưới dạng 'tên tệp' sau khi nâng cấp lên 18.04


23

Sau khi nâng cấp lên 18.04, từ 16.04, tất cả các tên tệp có khoảng trắng hiển thị là 'file name'. Trước đây nó chỉ đơn giản file name. Tên tệp không có không gian hiển thị bình thường:

$ ls
 bar  'foo bar'

Mặc dù nó không ảnh hưởng đến chức năng theo bất kỳ cách nào, tôi thấy sự lộn xộn trực quan này.

Tôi dùng bashlàm vỏ.

Làm cách nào tôi có thể xóa ''hiển thị xung quanh tên tệp có dấu cách?


4
Tại sao bạn muốn xóa chúng, chúng không phải là một phần của tên tệp và có thể giúp bạn quản lý tên tệp có khoảng trắng trên dòng lệnh hoặc trong tập lệnh.
Soren A

2
Tôi biết họ không phải là một phần của tên tập tin. Nhưng chúng là sự lộn xộn thị giác, và tôi không cần chúng.
vidarlo

4
@SorenA Nếu bạn sử dụng lsđể quản lý các tệp trong tập lệnh của mình, bạn đang làm sai. Tại sao bạn không nên phân tích đầu ralsTại sao không phân tích cú pháp ls(và làm gì để thay thế)?
tráng miệng

2
@ WinEunuuchs2Unix Nó giúp việc dán dễ dàng hơn, nhưng như câu trả lời của bạn đề cập, nó không thay đổi hành vi khi không xuất ra thiết bị đầu cuối ...
vidarlo

2
@vidarlo lsTác giả ít nhất là giải quyết một số vấn đề. Biết tác giả tích cực tham gia vào Stack Exchange (liên kết trong câu trả lời của tôi), người ta có thể dễ dàng đề xuất các cải tiến trong tương lai. Sau đó, nhận xét upvote từ người dùng khác sẽ khuyến khích tác giả thực hiện các đề xuất.
WinEunuuchs2Unix

Câu trả lời:


33

lsThay đổi hành vi này là từ năm 2016 nhưng cuối cùng cũng được đưa vào Ubuntu.

Để lấy lại hành vi sử dụng cũ ls -N.

Tùy chọn bạn có thể sử dụng một biến môi trường:

QUOTING_STYLE=literal ls

Làm cho nó một bí danh, hoặc thiết lập export QUOTING_STYLE=literaltrong bạn ~/.bashrcđể đạt được các hành vi cũ.

Bạn có thể đọc liên kết ở trên để biết thêm chi tiết bao gồm lịch sử khi nào, ở đâu, tại sao và làm thế nào tất cả những điều này xảy ra. Có khá nhiều bình luận dưới tác giả của những thay đổi trong đó ông biện minh cho hành vi mới:

Một vài điểm về sự thay đổi.

  • Nó được giới thiệu trong coreutils v8.25 và sự liên kết được cải thiện trong v8.26
  • Nó chỉ xảy ra khi xuất ra thiết bị đầu cuối nên không phá vỡ tập lệnh
  • Nó định hướng đầu ra cho người dùng cho các tệp chứa khoảng trắng
  • Nó vệ sinh đầu ra để an toàn để sao chép và dán
  • Đầu ra bây giờ luôn hợp lệ để sao chép và dán lại vào shell
  • Người dùng có thể quay lại định dạng cũ bằng cách thêm -Nvào lsbí danh của họ

12

Đó lslà trích dẫn đầu ra, chạy:

ls -N

để có được đầu ra mà không có bất kỳ trích dẫn.

man ls

-N, - tiêu chuẩn

in tên mục nhập mà không trích dẫn


Bí danh nếu bạn muốn:

echo "alias ls='ls -N'" >> .bashrc
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.