Làm cách nào để tạo một tệp trống mới trong tập lệnh bash?


19

Tôi đang chạy một số tập lệnh Perl của bên thứ ba được viết sao cho nó yêu cầu một tệp đầu ra cho cờ đầu ra , -o.

Thật không may, tập lệnh dường như yêu cầu một tệp thực tế, nghĩa là người dùng phải tạo một tệp trống filename.txtcó 0 byte và sau đó nhập tệp trống này vào dòng lệnh của tập lệnh

perl script1.pl -o filename.txt

Câu hỏi: Làm cách nào để tạo một tệp trống trong tập lệnh bash? Nếu chỉ đơn giản là cố gắng perl script1.pl -o filename.txt, tập lệnh sẽ báo lỗi rằng tập tin không tồn tại.


1
touch filename.txt
hschou


Câu trả lời:


29

Sử dụng touchlệnh. touch filename.txt.


8
echo -n >file
Hannu

8
cẩn thận - điều này sẽ không làm trống tập tin của bạn nếu nó đã tồn tại
johanvdw

6

Sử dụng lệnh null ( :) redirect ( > filename) trick ( :>), vì điều này sẽ cắt ngắn về 0 hoặc tạo tệp được đặt tên.

$ echo foo > filea
$ :> filea
$ wc -c filea
       0 filea
$ rm filea
$ :> filea
$ wc -c filea
       0 filea

(Điều này sẽ thất bại nếu trình bao đặt tùy chọn NOCLOBBER.)


1
Nếu noclobber được đặt, hãy sử dụng chuyển hướng >|sang clobber, do đó :>| filea- được ghi lại trong hướng dẫn
glenn jackman

1
Chỉ cần > filename.txtlàm, không cần cho :. Hoặc >> filename.txtnếu chúng ta không muốn rác nó nếu nó tồn tại.
ilkkachu

2
@ilkkachu mặc dù câu hỏi không chỉ định Bash, việc sử dụng :không làm cho tập lệnh có nhiều khả năng hoàn thành nhiệm vụ của nó với các shell khác, ví dụ Zsh.
can-ned_food

3

Bạn luôn có thể sử dụng perl, quá.

$ stat filename.txt
stat: cannot stat 'filename.txt': No such file or directory
$ perl -e 'open($fh,">","filename.txt") or die $!;close($fh)'                                         
$ stat filename.txt                                                                                   
  File: 'filename.txt'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 801h/2049d  Inode: 280728      Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/ xieerqi)   Gid: ( 1000/ xieerqi)
Access: 2017-02-08 13:51:01.479121995 -0700
Modify: 2017-02-08 13:51:01.479121995 -0700
Change: 2017-02-08 13:51:01.479121995 -0700
 Birth: -
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.