Bash
Version vom 22. Februar 2022, 18:00 Uhr von Geist (Diskussion | Beiträge)
Inhaltsverzeichnis
Script
$ type script $ chmod +x script $ ./script $ .script $ source script $ bash script
#!/bin/bash
Command Line
Everything is a file 255 Byte The maximum length for a file name is 255 bytes. The maximum combined length of both the file name and path name is 4096 bytes. This length matches the PATH_MAX that is supported by the operating system. Names are case-sensitive
Special chars to avoid in names/filenames
/ Never \ Escaped - Never at beginning [] Escaped {} Escaped * Escaped ' Escaped " Escaped
Wildcards
* asterisk | any char ? question mark | single char [] square brackets | set of single char or a range of chars
List files and folders
$ ls $ ls folder $ ls ./folder $ ls /path/folder $ ls ~/folder $ ls ~/folder/*.jpg $ ls ~/folder/*txt* $ ls -R folder (list of subfolders)
$ ls -l (single column) - regular file _ executable d directory l symbolic link s socket b block device c character device p named pipe
$ ls -m (comma-separated list) $ ls -a (hidden files and folders)
$ ls -F (file type) Symbols and file types * Executable / Directory @ Symbolic link | FIFO = Socket
$ ls --color (content in color) $ dircolors $ dircolors --print-database $ ls -F --color $ la -la $ ls -r $ ls -X (sort by extension) $ ls -t (sort by date) $ ls -S (sort by content) $ ls -h $ ls -laS $ ls -h
$ pwd (current path)
Change directory with cd
$ cd folder $ cd ~ $ cd - $ cd ..
Create and change current time of file touch
update access and modification time for file $ touch file
Count files and directories, summary size and EXCLUDE folders
bash count files and directory, summary size and EXCLUDE folders that are fuse|sshfs
Full size of a folder with du
get the full size of workdir | no fuse/sshfs in use $ du -hs workdir
get the full size of workdir, excluding mysshfs | fuse/sshfs in use $ du -hs --exclude=mysshf workdir
Count files in folder with find
count files in workdir | no fuse/sshfs in use $ find workdir -type f | wc -l
count files in workdir, excluding mysshfs | no fuse/sshfs in use $ find workdir -type f -not -path "*mysshfs*" | wc -l
count files in workdir, excluding mysshfs | fuse/sshfs in use $ find workdir -path "*/mysshfs/*" -prune -o \( -type f -print \) | wc -l
Count folders in folder with find
count folders in workdir | no fuse/sshfs in use $ find workdir -type d | wc -l
count folders in workdir, excluding mysshfs | no fuse/sshfs in use $ find workdir -type d -not -path "*mysshfs*" | wc -l
count folders in workdir, excluding mysshfs | fuse/sshfs in use $ find workdir -path "*/mysshfs/*" -prune \( -type d -print \) | wc -l
Building blocks
run several commands sequentially with ; and &&
executed sequential no matter if successfully or unsucessfully ; $ ls /home ; ls notfound; ls ~
executed sequential if successfully run next && $ ls /home && ls notfound && ls ~