How to Remove Files and Directories in Linux?

One of many primary duties of file system administration contains creating, modifying, and deleting numerous forms of information and folders. Realizing some primary file deletion instruments and ideas is useful and might prevent time.

Linux provides a number of instruments that may assist us carry out file deletion duties. Typically we have to delete not only one, however a number of information and folders, based mostly on some standards. It’s helpful to know a couple of frequent instructions and their mixtures in order that we will simply full our process.

  • Use the instructions under with warning, particularly those who use common expressions or sure search patterns with the discover command. An incorrect expression or sample can delete important information/system information or just unintended information.
  • All the time safe the newest backup of essential information and system information.
  • Watch out earlier than working such instructions, particularly when working them with Sudo or as superuser (root).

Take away through unlink

Not that widespread. To delete a single file completely, we will use unlink command.

$ unlink {file-name}

Delete one file

There’s a extra generally used command for deleting information, which is: rm command, which helps simultaneous deletion of a number of information.

$ rm {file-name}

rm prompts you to substantiate file deletion for write-protected information, in any other case the file can be deleted straight. To make rm all the time ask earlier than deleting a file, use -i flag:

$ rm -i {file-name}

rm command is eliminated with out displaying any messages on the display. To sum up what rm command really does, use rm with -v flag.

$ rm -v {file-name}

To delete write-protected information with out asking for affirmation, use -f flag.

$ rm -f {file-name}

Delete a number of information

A number of information may be deleted by specifying a number of file names rm as arguments.

$ rm {file-name-1} {file-name-2} {file-name-3} ... {file-name-N}

rm additionally helps common expressions. When you’ve got all information named file-name-*you should utilize:

$ rm file-name-*

We are able to additionally specify a number of information utilizing common expressions. If we wish to delete three matching information file-name-1, file-name-2 And file-name-3can we use one thing like:

$ rm file-name-[123]

Delete folder

An empty folder may be deleted utilizing rm command with -d selection.

$ rm -d {dir-name}

Supported file deletion choices can be mixed with folder deletion utilizing -d flag too. For instance:

$ rm -idv {dir-name}

Use to delete a folder that isn’t empty -r flag.

$ rm -r {dir-name}

If you don’t need prompts earlier than deleting the folder and its contents, use -rf flag. This WILL delete all the things within the folder, together with the folder itself, with none affirmation. Watch out when utilizing it, particularly as root.

$ rm -rf {dir-name}

Discover and delete information

For extra complicated necessities, we will use discover command with completely different choices. To delete all information that match the sample {sample} inside a path given by {dir-to-search}

$ discover {dir-to-search} -type f -name {sample} -exec rm -f {} ;

Instance:

$ discover /var/tmp -type f -name "*.tmp" -exec rm -f {} ;

If we wish to delete all the things that matches a sample {sample} together with folders in it {dir-to-search}can we barely modify the above command as:

$ discover {dir-to-search} -name {sample} -exec rm -rf {} ;

Trendy variations of the discover command assist the delete perform internally. Right here -delete flag replaces rm command whereas -depth instructs discover command to course of the contents of the listing first earlier than the listing itself:

$ discover {dir-to-search} -type f -name {file-name-pattern} -depth -delete

The instance above is extra environment friendly when working with a lot of information as a result of it doesn’t require a brand new exterior course of rm command for every matching file. However not all variations of discover command can (nonetheless) assist -delete flag. Alternatively, we’ve got the choice to make use of xargs command with discover as proven within the following instance under:

$ discover {dir-to-search} -type f -name {sample} -print0 | xargs -0 rm

Or use exec instructions + terminator to string collectively all the things discovered by the discover command like xargs:

$ discover {dir-to-search} -name {sample} -exec rm -rf {} +

By default, the command makes use of discover -print flag that we normally skip writing. Of xargswe must always keep away from new-line character between every file identify. As such -print0 flag instructions to print null character after every discovered file identify.

We specify in the identical means -0 flag alongside xargs in order that each instructions are linked collectively. rm command right here deletes the file handed by piped discover enter. For instance, the command under finds and deletes all the things *.tmp information from the present person’s dwelling listing (given by ~ image).

$ discover ~ -name "*.tmp" -print0 | xargs -0 rm

discover command provides a number of methods to go looking information and directories, together with possession, permission, timestamp, and so on. We are going to focus on a couple of such methods that may assist us in particular file deletion duties.

Discover and delete a person’s information

To delete all the things in a selected folder owned by a selected personutilization:

$ discover {dir-to-search} -mindepth 1 -user {user-name} -delete

Within the instance above -mindepth flag with worth 1 prevents the map given by {dir-to-search} from deletion if it matches the search sample and standards. Or to delete all the things in a selected folder that belongs to a selected folder grouputilization:

$ discover {dir-to-search} -mindepth 1 -group {group-name} -delete

Should you do not wish to undergo the subfolders below the search path, you even have the choice to make use of this -maxdepth with the proper folder depth worth.

This is an instance run:

$ discover tempdir/ -mindepth 1 -maxdepth 1 -user abhisheknair -group abhisheknair -delete

If you wish to specify it user-id And group-id as an alternative you possibly can strive one thing like:

$ discover {dir-to-search} -mindepth 1 -uid {user-id} -gid {group-id} -delete

Discover and delete empty folders

To delete all empty folders inside a given path {dir-to-search}you should utilize:

$ discover {dir-to-search} -type d -empty -delete

As a substitute, you possibly can delete all empty information inside a given path {dir-to-search}utilization:

$ discover {dir-to-search} -type f -empty -delete

Discover and delete information older than X

Generally you could must delete information older than x to daybreak. discover has choices to learn the creation of the file (ctime), entry (atime) and alter (mtime) time. We are able to use mtime possibility with discover to seek out and delete information which were modified greater than x days in the past.

$ discover {dir-to-search} -type f -mtime +{X} -delete

For instance, to delete all information with the extension log in them /var/tmp with a change time of 30 days in the past or extra we will use:

$ discover /var/tmp -name "*.log" -type f -mtime +30 -delete

Discover and delete information with permission

Now we will additionally delete information based mostly on a selected permission, comparable to:

$ discover {dir-to-search} -name {sample} -perm {NNN} -delete

Instance:

$ discover /var/tmp -name "temp*" -perm 755 -delete

Or if we wish to use a symbolic consent type, use:

$ discover {dir-to-search} -name {sample} -perm u={rwx},g={rwx},o={rwx} -delete

Instance:

$ discover /var/tmp -name "temp*" -perm u=rwx,g=rw,o=rw -delete

Sum up

Linux provides unlink, rm And rmdir instructions which are easy and may be simply prolonged utilizing common expressions. For extra superior wants, you might have the choice of utilizing a mix of instruments comparable to discover And xargs to realize what you want. Along with the examples on this article, you even have the choice of utilizing discover with one of many obtainable flags to customise your search. Seek advice from man pages for respective instructions to study extra about them.

All the time run discover instructions with out rm or -delete mark and analyze the output to know which information or directories are affected by the execution of an precise command. Having the suitable backup configuration and insurance policies not solely helps in opposition to unintended deletions, but additionally in opposition to {hardware} failures and cyber-attacks.

Rate this post
Leave a Comment