Hot answers tagged ls
dir and ls are part of coreutils and dir is almost the same as ls, just with different default options. The GNU Core Utilities are the basic file, shell and text manipulation utilities of the GNU operating system. These are the core utilities which are expected to exist on every operating system. info dir says: dir is equivalent to ls -C -b; that ...
Short answer: ls -l gives the size of the file (= the amount of data it contains) ls -s --block-size 1 gives the size of the file on the file system Let's create two files: A sparse file of 128 bytes length (A sparse file is a file containing empty blocks, see Sparse File): # truncate -s 128 f_zeroes.img # hexdump -vC f_zeroes.img 00000000 00 00 00 ...
If you want to move ABC-IDENTIFIER-XYZ.ext or IDENTIFIER-XYZ.xml, you can use: mv *IDENTIFIER* ~/YourPath/ * is a wildcard for zero or more characters, this means zero or more characters, followed by IDENTIFIER, followed by zero or more characters. This will move all the files that contain the IDENTIFIER you specified.
You could use mv -t DESTINATION file1 file2 file3 and mv -t DESTINATION `ls|grep IDENTIFIER` works, but I'm not sure if mv is invoked multiple times or not as grep will output a new line for each match.
There's no straightforward equivalent in ls itself, but there's the less utility, which will format the output of any command as seperate pages, scrollable by line or page: ls -C | less Where -C triggers column display. Use lah as arguments (ls -lah) to get a line by line display with all files being displayed (include hidden ones), and human readable ...
tree will be very convenient for you. sudo apt-get install tree using tree filepathto list the files.
The second column is the number of hard links to the file. For a directory, the number of hard links is the number of immediate subdirectories it has plus its parent directory and itself. $ ls -n total 0 $ touch f1 $ touch f2 $ ln f1 hardlink $ ln -s f2 softlink $ mkdir d1 $ mkdir d2 $ mkdir d2/a d2/b d2/c $ ls -n total 8 drwxr-xr-x 2 1000 1000 4096 ...
The command : ls -ld .?* Will only list hidden files . Explain : -l use a long listing format -d, --directory list directory entries instead of contents, and do not derefer‐ ence symbolic links .?* will only state hidden files
If you are just using ls with no arguments, it appears that you are using an alias for ls. To get the same output, I need to use ls -lF. From the ls manpage: -F, --classify append indicator (one of */=>@|) to entries -l use a long listing format The symbols mean the following: /: directories @: symbolic links |: FIFOs =: sockets *: ...
This is located in your .bashrc: alias ll='ls -al' By taking a look at the manual pages for the command ls, you can see what those two attributes accomplish together: -a: do not ignore entries starting with .. -l: use a long listing format. So you can understand that ls -l would ignore any entry starting with .. That's their only difference. EDIT: ...
Parsing ls is a Bad Idea®, prefer a simple find in that case: find . -type l -ls Credits: How do I make the shell to recognize the file names returned by a `ls -A` command, and these names contain spaces?
Based on your screenshot, it appears that the files are indeed being displayed. It's just that they happen to have the same color as the background so you are not seeing them. Some solutions: 1) (recommended) Change the color scheme: Make sure nothing shares the same color as the background by opening a terminal and go to Edit > Profile Preferences > ...
karthick@Ubuntu-desktop:~$ ls -n drwxr-xr-x 2 1000 1000 4096 2010-12-02 15:56 Books First Column: drwxr-xr-x It shows file permission. Second Column: 2 It shows the hard link count to that file/directory. Third nd Fourth Column: 1000 1000 It shows UID and GID of the user. Fifth column: 4096 It shows the size. Sixth column: ...
// is usually the same as /. /// must be the same as /. ls would have shown you that cd // took you to the root directory, the same as cd / does. $ cd / $ ls bin boot dev ... $ cd // $ ls (same as above) The technical way to confirm they are definitely the same directory is: $ cd / $ stat -c "%i" . 2 $ cd // $ stat -c "%i" . 2 they will print the ...
I believe you're talking about indicators presented by ls -F. From the manpage of ls: -F, --classify append indicator (one of */=>@|) to entries [...] --indicator-style=WORD append indicator with style WORD to entry names: none (default), slash (-p), file-type (--file-type), classify (-F) To get an overview of the meaning of these ...
Try using Find sudo find . -print | grep -i '.*[.]xml'
It appears that you are in the directory /root and not /. Please type: cd / ls -al
ls -I <filename> -I = Ignores the file. It won't list the specified file. To ignore more than one file add multiple -I before files. ls -I file1 -I file2
ls -s tells you the allocated size of the file, always a multiple of the allocation unit. ls -l tells the actual size. An easy way to test: echo 1 > sizeTest ls -l --block-size 1 sizeTest -rw-rw-r-- 1 g g 2 Mär 18 15:18 sizeTest ls -s --block-size 1 sizeTest 4096 sizeTest
ls -d .!(|.) Does exactly what OP is looking for .
ls -alR That's probably the simplest method. I'm just hacking out a find script to give you a touch more control.
You can use: find -iname '*.pdf' with ls maybe: ls -lR | grep '/\|pdf$'
To change your directory colors, open up your ~/.bashrc file with your editor nano ~/.bashrc and make the following entry at the end of the file: LS_COLORS=$LS_COLORS:'di=0;35:' ; export LS_COLORS Some nice color choices (in this case 0;35 it is purple) are: Blue = 34 Green = 32 Light Green = 1;32 Cyan = 36 Red = 31 Purple = 35 Brown = 33 Yellow = ...
You say that "ls piped to head takes an awful long time to complete". The cause of this is not ls, but the number of files in your directory. If you have 100,000 files in a single directory, any way of solving this problem would have to get information about all 100,000 files before it could even think about sorting them or printing any output. If it's ...
According to bash man page: bash scans each word for the characters *, ?, and [. If one of these characters appears, then the word is regarded as a pattern, and replaced with an alphabetically sorted list of file names matching the pattern and from info node for ls The `ls' program lists information about files (of any type, including ...
You can do it with find only: find . -name '*.xml' . is the current directory. If you need to search in another directory, replace . with the directory path.
shopt -s extglob ## enables extended globbing ls !(*.*) ## matches every file except those containing a dot You will find that doing this will show you the contents of every directory in the working directory. If you don't want this, use: ls -d !(*.*) You can put shopt -s extglob in your ~/.bashrc to have it activated whenever you open a terminal. There ...
If you just want the files in your current directory (no recursion), you could do echo .[^.]* That will print the names of all files whose name starts with a . and is followed by one or more non-doc characters. Note that this will fail for files whose name starts with consecutive dots, so for example ....foo will not be shown. You could also use find: ...
find . -name *foo* | xargs -r ls -lah That should work.
find /path/ -printf "%TY-%Tm-%Td\t%s\t%p\n" You can play with the printf formatting as much as you like. This gives you a great opportunity to get things formatted the way you need them, which is invaluable if you're using the output in another application. More: http://linux.about.com/od/commands/l/blcmdl1_find.htm For better readability, you can pipe ...
Only top voted, non community-wiki answers of a minimum length are eligible