mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
249 lines
7.5 KiB
Markdown
249 lines
7.5 KiB
Markdown
[#]: subject: "Terminal Basics Series #3: Listing the Contents of Directory With ls Command"
|
||
[#]: via: "https://itsfoss.com/list-directory-content/"
|
||
[#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/"
|
||
[#]: collector: "lkxed"
|
||
[#]: translator: " "
|
||
[#]: reviewer: " "
|
||
[#]: publisher: " "
|
||
[#]: url: " "
|
||
|
||
Terminal Basics Series #3: Listing the Contents of Directory With ls Command
|
||
======
|
||
|
||
The ls command in Linux is used for listing the contents of directories. You can think of `ls` as a short form for `list`.
|
||
|
||
![ls command output][1]
|
||
|
||
There is more to just listing what a directory consists of. You can see the file size, the time it was created, whether it is a file or directory, and file permissions. You can even sort the output based on those criteria.
|
||
|
||
I won't go into a lot of detail. You should know just enough basics to get your way around it at this stage.
|
||
|
||
### Prepare your test setup
|
||
|
||
This Terminal Basics tutorial series uses a hands-on approach where you learn things by doing them. It will be better to create a working scenario on your system so that you can try things and see similar results, as shown in this tutorial.
|
||
|
||
Open a terminal and switch to the home directory and create a `ls-command` directory under the `practice` directory and then enter this newly created directory.
|
||
|
||
```
|
||
cd ~
|
||
mkdir -p practice/ls-command
|
||
cd practice/ls-command
|
||
```
|
||
|
||
**It's okay if you don't recognize some commands here. Just enter them as it is shown.**
|
||
|
||
Create a couple of empty files:
|
||
|
||
```
|
||
touch empty_file_{1,2}
|
||
```
|
||
|
||
Copy a huge text file:
|
||
|
||
```
|
||
cp /etc/services .
|
||
```
|
||
|
||
Create a few directories:
|
||
|
||
```
|
||
mkdir dir_{1..3}
|
||
```
|
||
|
||
Create a hidden file:
|
||
|
||
```
|
||
echo "Now You See Me" > .john-cena
|
||
```
|
||
|
||
And let's end the setup with a soft link (like a shortcut to a file):
|
||
|
||
```
|
||
ln -s services link_services
|
||
```
|
||
|
||
Let's see how the ls-command directory looks now:
|
||
|
||
```
|
||
[email protected]:~/practice/ls-command$ ls
|
||
dir_1 dir_2 dir_3 empty_file_1 empty_file_2 link_services services
|
||
```
|
||
|
||
### Long list: Listing with details
|
||
|
||
While the ls command shows the content, it doesn't give any details about the contents.
|
||
|
||
This is where you can use the long listing option `-l`.
|
||
|
||
```
|
||
ls -l
|
||
```
|
||
|
||
It will show the directory's contents in individual rows with additional information in alphabetical order:
|
||
|
||
![Long listing with ls command in Linux][2]
|
||
|
||
📋
|
||
|
||
Most Linux distros have preconfigured to show files, directories and links in different colors. The executable files are also shown in a different color.
|
||
|
||
You'll see the following information in the long listing:
|
||
|
||
- **File type**: - for file, d for directory, l for soft links.
|
||
- **Number of hard links**: Usually 1 unless there is actually a hard link (don't worry too much about it).
|
||
- **Owner name**: The user who owns the file.
|
||
- **Group name:** The group that has access to the file.
|
||
- **File size**: Size of the file in bytes. It is always 4K (or 4096) for the directories, irrespective of the directory size.
|
||
- **Date and time**: Usually, the file's last modified time and date.
|
||
- **Filename**: Name of the file, directory, or link .
|
||
|
||
![File details in the long listing of ls command][3]
|
||
|
||
It is a good idea to know about file permission and ownership. I highly recommend reading this tutorial.
|
||
|
||
### Displaying the hidden files
|
||
|
||
Remember that you created a 'hidden file' named .john-cena? But you don't see it in the output of the ls command.
|
||
|
||
In Linux, if a filename starts with a dot (.), the file or directory is hidden from the normal view.
|
||
|
||
To see these 'hidden files', you have to use the option `-a`:
|
||
|
||
```
|
||
ls -a
|
||
```
|
||
|
||
Actually, you can combine more than one option together in most Linux commands. Let's combine it with the long listing option:
|
||
|
||
```
|
||
ls -la
|
||
```
|
||
|
||
Now, it will show the hidden .john-cena file:
|
||
|
||
![Show hidden files with ls command in Linux][4]
|
||
|
||
Did you notice the special directories `.`(current directory) and `..`(parent directory) are also displayed now?
|
||
|
||
You can make them go away and still show other hidden files using the option `-A` instead of `-a`. Go ahead and try it.
|
||
|
||
### Display file size
|
||
|
||
The long listing option `-l` shows the file size. However, it is not easy to understand. For example, in the examples above, the services file has size 12813 bytes.
|
||
|
||
As a normal computer user, it makes more sense to see the file size in KB, MB and GB.
|
||
|
||
The ls command has a human-readable option `-h`. Combine it with the long listing option and you can see the file size in recognizable formats.
|
||
|
||
![Showing file size with the ls command][5]
|
||
|
||
💡
|
||
|
||
The ls command doesn't display the size of directories. For directory size, you have the
|
||
|
||
```
|
||
du
|
||
```
|
||
|
||
command.
|
||
|
||
### Display the newest files first
|
||
|
||
You already saw that the long listing shows the modified time of a file/directory.
|
||
|
||
You can sort the output of the ls command based on this timestamp using the `-t` option:
|
||
|
||
```
|
||
ls -lt
|
||
```
|
||
|
||
As you can see, the link was the most recent of them all.
|
||
|
||
![Sort files on modified time in Linux][6]
|
||
|
||
🖥️
|
||
|
||
Reverse the order and show older files first by combining the above option
|
||
|
||
```
|
||
-t
|
||
```
|
||
|
||
with the reverse option
|
||
|
||
```
|
||
-r
|
||
```
|
||
|
||
. What do you see?
|
||
|
||
### Show details on individual files
|
||
|
||
So far, you have used the ls command on the entire current directory. You can also use it on a single file or a bunch of files and directories. What's the point? Well, you can use the long listing option to get the details on selected files.
|
||
|
||
```
|
||
ls path_to_file1 path_to_file2
|
||
```
|
||
|
||
Here's an example:
|
||
|
||
![Using ls commandon selected files][7]
|
||
|
||
🏋️
|
||
|
||
If you use the
|
||
|
||
```
|
||
ls
|
||
```
|
||
|
||
command with a directory path, it will show its content. If you want to see the stats of a directory, use the option
|
||
|
||
```
|
||
-d
|
||
```
|
||
|
||
.
|
||
|
||
### Test your knowledge
|
||
|
||
Most Linux commands have numerous options. It is impossible for anyone to know them all, even for the most frequently used commands like ls here.
|
||
|
||
For now, you have a decent idea about listing the contents of a directory and checking file stats. It's time to put your knowledge to some test.
|
||
|
||
Try the following:
|
||
|
||
- Create a new directory called ls_exercise and enter this directory
|
||
- Use the following command to copy a file: `cp /etc/passwd .`
|
||
- Check the content of a directory. What's the filename?
|
||
- What is the size of this file?
|
||
- Copy some more files using this command: `cp /etc/aliases /etc/os-release /etc/legal .`
|
||
- Sort the files in the reverse order of modified time.
|
||
- What do you observe if you run the following command: `ls -lS`?
|
||
|
||
You can discuss this exercise in the community forum.
|
||
|
||
In the next chapter of the Terminal Basics series, you'll learn about creating files in Linux command line.
|
||
|
||
Do let me know if you have questions or suggestions.
|
||
|
||
--------------------------------------------------------------------------------
|
||
|
||
via: https://itsfoss.com/list-directory-content/
|
||
|
||
作者:[Abhishek Prakash][a]
|
||
选题:[lkxed][b]
|
||
译者:[译者ID](https://github.com/译者ID)
|
||
校对:[校对者ID](https://github.com/校对者ID)
|
||
|
||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||
|
||
[a]: https://itsfoss.com/author/abhishek/
|
||
[b]: https://github.com/lkxed/
|
||
[1]: https://itsfoss.com/content/images/2023/02/ls-command-sample-output.png
|
||
[2]: https://itsfoss.com/content/images/2023/02/ls-command-long-listing.png
|
||
[3]: https://itsfoss.com/content/images/2023/02/file-permission-explanation.webp
|
||
[4]: https://itsfoss.com/content/images/2023/02/showing-hidden-files-with-ls-command.png
|
||
[5]: https://itsfoss.com/content/images/2023/02/show-file-size-with-ls.png
|
||
[6]: https://itsfoss.com/content/images/2023/02/ls-sort-by-time.png
|
||
[7]: https://itsfoss.com/content/images/2023/02/ls-command-on-some-files.png |