Hot answers tagged ls
dir and ls are part of coreutils and dir is an alias. 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 is, by default files are listed in columns, ...
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.
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 *: ...
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
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: ...
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 ...
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 ...
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 > ...
It appears that you are in the directory /root and not /. Please type: cd / ls -al
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 ...
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.
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
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 ...
You can use: find -iname '*.pdf' with ls maybe: ls -lR | grep '/\|pdf$'
Try using Find sudo find . -print | grep -i '.*[.]xml'
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.
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 ...
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 ...
As a one-off command you can do this: LC_COLLATE=C ls Or you can add export LC_COLLATE="C" to your .bashrc to make it permanent (may have unexpected results sorting elsewhere). More information on Ubuntu forums.
Only top voted, non community-wiki answers of a minimum length are eligible