I'm a believer in the basics, and as a former technical instructor, I have a soft spot for folks who are new to Linux (and other platforms). I've written articles on the fundamentals, and I thought it was time to cover some basic file-manipulation commands.

This article looks at day-to-day tasks such as copying, moving, renaming, creating, and deleting files and directories. Here are eight commands to make managing files easier.

What's there?

Before you can manage files, you must know what files are present. The ls command displays the contents of the current or specified directories.

ls command
(Damon Garn, CC BY-SA 4.0)

Of course, ls has many useful options. Here are three of my favorites:

  • -l Long format (to display permissions)
  • -a All files, including hidden files
  • -Z SELinux context

It's certainly useful to view the contents of directories, but what about the contents of files? There are many ways of doing this, but I'll point out the cat command here. It's a quick way of seeing what's in a file.

The pipe character (that's the | symbol above the backslash on a US keyboard) is a signal to the terminal that you want to combine commands. It allows you to "pipe" the output of one command to the input of another.

For example, combine the cat command with | grep {string} to search the contents of the file for a specific string of characters.

Commands such as less, more, most, head, and tail are all useful for displaying file contents. For most of these commands, the syntax is simply the command name followed by the filename.

See Getting started with ls for lots more tricks using the ls command.

Manage directories

Displaying files and directories is one thing, but managing them is another. In an effort to organize your files better, you may want to create one or more new directories. You may also find directories you no longer need.

To create a new directory, simply type the mkdir command and specify the directory name (and, if necessary, the path to it). The rmdir removes any empty directories for you.

mkdir and rmdir
(Damon Garn, CC BY-SA 4.0)

Unfortunately, directories you wish to delete in most cleanup scenarios are not empty. In that case, there are two tricks to help. The first is to delete the directory and its contents in one command, and the second is to disable the interactive confirmation prompt temporarily.

First, to delete a non-empty directory, use the file-deletion command rm and add the -R (recursive) option. To delete the non-empty directory projects, type
rm -R projects.

[ For more tips, download the Linux commands cheat sheet. ]

Many distributions, RHEL and Fedora among them, prompt users to confirm any deletions. Normally, this is a good thing, but if you're deleting a directory with 100 files in it, you certainly don't want to type y for each file. In that case, use the -f (force) option. This option overrides the prompt and deletes the specified files. This can be incredibly dangerous, so be very careful and aware before using this option. Make certain you understand what's in the directory you're deleting.

In fact, consider using a trash command to safeguard yourself from mistakes because, although there's an rm command, there's no un-rm, at least not without a great deal of filesystem forensics with a tool like Scalpel or TestDisk.

Removing a non-empty directory
(Damon Garn, CC BY-SA 4.0)

Manage files

Text editors such as Vim and Nano can create new files, but sometimes it's handy to create an empty file quickly. I used to use the touch command in classroom demonstrations to make files to work with tools such as tar, cp, mv, and others.

Officially, touch updates the timestamp on existing files, but one side effect of the command is that if the file doesn't exist, touch creates it.

To remove a file, use the rm command. This is the same command used above to delete a non-empty directory. Again, you can use the -f option to remove files without being prompted for confirmation, but this is dangerous.

Organize files

The cp command copies files. This is useful for backing up configuration files before making changes to them. The syntax of cp is simple: copy from here to there. To copy the /etc/ssh/sshd_config file to your home directory, type cp /etc/sshd_config ~. The path to the config file is the source, and your home directory is the destination.

Depending on whether the cp command is aliased to cp -i on your system, it may overwrite existing files without warning, or it may prompt you to confirm each copy action that may overwrite a file. As with the rm command, you must take care with regard to overwriting files.

Moving files from one location to another uses the same syntax but with the mv command. Therefore, moving files is straightforward.

What's more interesting about the mv command is that it's also the rename command. The logic is that you're moving the file to the same location, just with a different name. So, to rename file1.txt to fileA.txt, type mv file1.txt fileA.txt. Keep in mind that mv can overwrite existing files, so be sure to check filenames before initiating mv.

Renaming a file
(Damon Garn, CC BY-SA 4.0)

Manage files carefully

Most users who have worked with Linux already know these commands, but with so many new users entering the open source and Linux worlds, a solid and practical review of some basic file-management commands is never bad. Be careful not to accidentally delete or overwrite files with these commands. Take a look at Seth Kenlon's file-management article, too. It includes information on working in a graphical user interface (GUI).


关于作者

Damon Garn owns Cogspinner Coaction, LLC, a technical writing, editing, and IT project company based in Colorado Springs, CO. Damon authored many CompTIA Official Instructor and Student Guides (Linux+, Cloud+, Cloud Essentials+, Server+) and developed a broad library of interactive, scored labs. He regularly contributes to Enable Sysadmin, SearchNetworking, and CompTIA article repositories. Damon has 20 years of experience as a technical trainer covering Linux, Windows Server, and security content. He is a former sysadmin for US Figure Skating. He lives in Colorado Springs with his family and is a writer, musician, and amateur genealogist.

UI_Icon-Red_Hat-Close-A-Black-RGB

按频道浏览

automation icon

自动化

有关技术、团队和环境 IT 自动化的最新信息

AI icon

人工智能

平台更新使客户可以在任何地方运行人工智能工作负载

open hybrid cloud icon

开放混合云

了解我们如何利用混合云构建更灵活的未来

security icon

安全防护

有关我们如何跨环境和技术减少风险的最新信息

edge icon

边缘计算

简化边缘运维的平台更新

Infrastructure icon

基础架构

全球领先企业 Linux 平台的最新动态

application development icon

应用领域

我们针对最严峻的应用挑战的解决方案

Virtualization icon

虚拟化

适用于您的本地或跨云工作负载的企业虚拟化的未来