See file information linux

how to find the meta information of a file using BASH [closed]

How to find the meta-information of a file in BASH? And how to extract and print it separately using cut and grep commands?

I’ve Found it Its » ls -l » Information About A File.. Like File Name, Permission, File Owner, Date etc..

find . -name «filename.txt» -print | xargs ls -iSl Will give you all files named filename.txt in the current directory (the dot). Then xargs is used to let ls get the standard input from the piped command. Then -iSl sorts and give you size and date. 6710 -rw-rw-r— 1 userA GroupB 2346 Nov 26 00:55 ./somefolder/filename.txt

4 Answers 4

Instead of parsing the output of ls using cut / grep , you should just use stat which takes a -c argument to specify the output format.

anthony@Zia:~$ stat -c '%n : %A : %U : %s' afiedt.buf .XCompose afiedt.buf : -rw-r--r-- : anthony : 178 .XCompose : lrwxrwxrwx : anthony : 38 

You can change the output format however you’d like; check the stat(1) manpage for details.

I’m just guessing here, but have you tried the command file ? It will try to identify what kind of file it is.

Actually, My Output Should Be Like This: File Name: File Type: File Owner: File Permission: File Size: I’ve Used ls -l To Find The Meta-Info Of a File. I Need To Extract And Print It Like Above.

@meandyxtreme Have a look at the cut command that is very good at picking values from columns. And, please, stop with the «Capital Letter At The Start Of Every Word» thing. It makes it very hard to read.

Sorry about the capitalizing of every word. Look what i typed [ur10cs164@linux lab]$ ls -l lab2.txt -rw-rw-r-- 1 ur10cs164 ur10cs164 801 Jul 19 16:40 lab2.txt so the above line shows all the meta-info. so now how to extract them seperately. i’ve tried ‘cut’. Maybe the format i’ve typed may wrong. Lemme know the correct method to extract from it

Источник

This post and this website contains affiliate links. See my disclosure about affiliate links.

how to view all details or metadata of a file in linux command line

When viewing a particular file in Linux, you might want to see all the relevant file metadata associated with it. The file metadata details includes information regarding its size, permissions, creation date, access date, inode number, uid/gid, file type etc.

There are mainly two different commands that you can use for this purpose, ls and stat. Both will print out almost the same information but in different format.

ls Command

The most useful of the two commands is ls, (at least in my opinion) which lists the file details. Using some command line options you can print out all the details and metadata information of the particular file.

The various command line options above prints out various information as detailed below

l : This uses the long listing format while printing out. This is much more informative than the default format.
i : Prints out the inode number of the file
s : Prints the file size in blocks
a : Prints out all entries and does not ignore any files
n : Prints out the numeric user id and group id
h : Print the sizes in human readable format.

Читайте также:  Установка драйверов hackrf linux

The above command will print out all relevant metadata information about the file, but usually is not very human readable in its format. As long as you know what information is printed in each column it should work just fine.

If you prefer a much more human readable format, then you can use the stat command instead.

stat Command

The basic stat command works without any command line arguments, other than the file name…

[root 17:03:19] ~ # stat world_bkp
File: ‘world_bkp’
Size: 2434 Blocks: 8 IO Block: 4096 regular file
Device: 804h/2052d Inode: 262149 Links: 1
Access: (0644/-rw-r—r—) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2014-02-13 05:06:57.883217273 -0600
Modify: 2014-02-13 05:06:57.893217273 -0600
Change: 2014-02-13 05:06:57.893217273 -0600
Birth: —

This prints out almost the same information as the ls command, but prints it out in a much more human readable format. There is also a basic description for each value in the format.

Both the ls and stat commands can be used for any file descriptor, which means both the file as well as directories. stat can be used on file systems as well.

The -f command line option specifies to print out the file system status instead of the file status. You can see the difference by running the command with and without the -f option.

If you are using another command such as find or locate to print out files, then you can pipe (|) the output of that command to either ls or stat to print out more meaningful information. A simple example is

bash$ locate world_bkp | xargs stat

The above command will print out the file details exactly as before, but is useful if you didn’t know the exact location of the world_bkp file. Another example of piping to ls command is

bash$ locate world_bkp | xargs ls -lisan

Again, as with most Linux commands, you can input multiple files in the command line to print the details of multiple files or use the pipe to output details of multiple files.

Image Files

There are in fact a couple of more commands that shows you specific information of a file depending on the type of the file. If you want to see what the file type is, then the file command can help you out.

Also in the case of image files, the identify command that is part of the imagemagick package is a very good option. The identify command will print out the image specific properties such as the format, colorspace, channel information etc.

bash$ identify -verbose myimage.jpg

Источник

Linux: Display File Properties via Terminal

We commonly need and want to know more about the files and directories that we are working with.

Most people know one of the ways, which is simply to Right Click > Properties on the wanted folder or file to view their properties. Though, for the more terminal-savvy, here’s how you can get the same (and more) information via the Terminal in Linux.

The ls Command

One of the most commonly used commands is the ls command, which lists all of the files and directories you’re located in, alongside their names.

Once you position yourself on a file path that you want, you can list all present files/folders via:

$ ls Folder_one large.jpg os.zip 

Alternatively, you can supply a directory name to list files from, without having to move to that directory:

$ ls Folder_one cpfile.c Direct fileinfo.c 

Though, these are just the names, and we can’t infer much from them. The ls command has several non-mandatory options which, when turned on, give us much more about these files when listing them.

Читайте также:  Virtual ips on linux

You can use them alone, or by combining a few of them, depending on what exactly you are looking for.

Getting Details With the -l Option

The -l option will modify the ls command to give you much more detailed info, such as whether an entry is a file or directory, the size (usually in bytes), modified date and time, permissions, and more:

The result of this command should look something like:

total 15168 drwxrwxr-x 3 marija marija 4096 Jul 18 19:26 Folder_one -rwxrwxrwx 1 marija marija 164461 Sep 12 2017 large.jpg -rw-rw-r-- 1 marija marija 15354276 Oct 25 2018 os.zip 

Here we can see that we have one directory (d in drwxrwxr-x ), named Folder_one , and 2 files. We can also see their owner and group, marija , and their size in bytes, as well as their modification date/time.

The number following the permissions is the number of links to the file or directory.

If you’d like to read more about permissions and how to change them via the terminal, read our Guide to Understanding chmod.

Note: You can get far with the -l flag, and by combining other flags with it, the ls command will get you far for this task.

Human-Readable -lh Option

If you want a more human-readable form, you can add the joined extension -lh or simply -h after the -l option:

$ ls -lh total 15M drwxrwxr-x 3 marija marija 4,0K Jul 18 19:26 Folder_one -rwxrwxrwx 1 marija marija 161K Sep 12 2017 large.jpg -rw-rw-r-- 1 marija marija 15M Oct 25 2018 os.zip 

Now, we can see the size of files shown in KB, MB, GB, etc. instead of showing only in bytes, which can be very helpful. Though, that’s mostly the benefit you get from this flag.

Showing Hidden Files With the -la Option

Hidden files start with a dot symbol ( . ) and aren’t meant to be picked up by most GUI software, or the ls command. These are typically files that you don’t want to see, so this makes perfect sense.

On the other hand, if you’d specifically like to also include hidden files while listing the files of a directory — you can add the -a flag. Combining the -l flag and -a flag, you can print the hidden files alongside regular files — with their information:

$ ls -la total 15212 drwxr-xr-x 3 marija marija 4096 Jul 18 20:03 . drwxr-xr-x 29 marija marija 4096 Jul 18 20:13 .. drwxrwxr-x 3 marija marija 4096 Jul 18 19:26 Folder_one -rwxrwxrwx 1 marija marija 164461 Sep 12 2017 large.jpg -rw-rw-r-- 1 marija marija 15354276 Oct 25 2018 os.zip -rw-r--r-- 1 marija marija 12288 Jan 29 2018 .tekst.txt.swn -rw-r--r-- 1 marija marija 12288 Jan 29 2018 .tekst.txt.swo -rw-r--r-- 1 marija marija 12288 Jan 29 2018 .tekst.txt.swp 
Displaying Block Size With the -s Option

Free eBook: Git Essentials

Check out our hands-on, practical guide to learning Git, with best-practices, industry-accepted standards, and included cheat sheet. Stop Googling Git commands and actually learn it!

The -s option displays the file’s size in blocks, rather than regular bytes:

$ ls -s total 15168 4 Folder_one 164 large.jpg 15000 os.zip 

Note: Blocks are the smallest writable unit for your system and hardware.

Читайте также:  Linux присвоить значение команды переменной
Sorting Files by Size with the -lS Option

The -S flag, not to be confused with the lowercase -s from earlier, is a sorting flag. It sorts the files by size, in descending order:

$ ls -lS total 15168 -rw-rw-r-- 1 marija marija 15354276 Oct 25 2018 os.zip -rwxrwxrwx 1 marija marija 164461 Sep 12 2017 large.jpg drwxrwxr-x 3 marija marija 4096 Jul 18 19:26 Folder_one 
Recursive Listing with the -R Option

If you want to list subdirectories, you’ll have to make a recursive ls call. The -R option makes this a really simple endeavor.

It will give you a tree representation of all of the files or directories that happen to be in a particular place:

$ ls -R directory Screenshot 2021-07-26 at 18.53.05.png file.txt Screenshot 2021-07-26 at 21.15.20.png mpl directory/dvp-articles: axis-off directory/dvp-articles/axis-off: app.py get-pip.py directory/mpl: mpl-chapter-2-1.png 

Here, we’ve recursively called ls on the directory . Within it, there’s another directory — dvp-articles , and within it, yet another — axis-off . Within axis-off , there’s an app.py and get-pip.py .

Of course, you can chain the -l flag here as well, but the output might get a bit messy:

ls -lR directory [email protected] 1 david staff 369705 Jul 26 23:57 Screenshot 2021-07-26 at 23.57.34.png [email protected] 1 david staff 103861 Jul 27 00:05 Screenshot 2021-07-27 at 00.05.16.png drwxr-xr-x 3 david staff 96 Jun 17 18:00 dvp-articles -rw-r--r-- 1 david staff 0 Jun 25 17:11 file.txt drwxr-xr-x 3 david staff 96 Jul 16 20:19 mpl directory/dvp-articles: total 0 [email protected] 4 david staff 128 Jun 17 18:03 axis-off directory/dvp-articles/axis-off: total 3800 -rw-r--r-- 1 david staff 463 Jun 17 18:08 app.py -rw-r--r-- 1 david staff 1937800 Jun 17 18:03 get-pip.py directory/mpl: total 376 [email protected] 1 david staff 192506 Jul 16 20:18 mpl-chapter-2-1.png 
Option -i

To use inode, we can add the -i flag:

$ ls -i 688193 Folder_one 680393 large.jpg 680392 os.zip 

Of course, you can chain it with other flags such as:

$ ls -li 49323 [email protected] 3 david staff 96 Jun 16 20:39 Applications 34615 drwx------+ 15 david staff 480 Jul 27 00:05 Desktop . 

The stat Command

The stat command is much more like the good old Right Click > Properties approach, because it formats all of the data and properties in a very readable format. It requires a filepath and isn’t as customizable as ls :

File: 'Folder_one' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 805h/2053d Inode: 688193 Links: 3 Access: (0775/drwxrwxr-x) Uid: ( 1000/ marija) Gid: ( 1000/ marija) Access: 2021-07-18 20:04:03.205402891 +0200 Modify: 2021-07-18 19:26:00.681976407 +0200 Change: 2021-07-18 20:03:51.617219116 +0200 Birth: - 

For some, this is a much better solution than the ls command.

With stat , you can also format the printed info via —printf . You can filter out data such as the user name of the owner, group name of owner, or time of last status change, in even more human-readable form:

$ stat --printf='%U\n%G\n%z\n' Folder_one/ 

Which will in this case results in:

marija marija 2021-07-18 20:03:51.617219116 +0200 

Notice that we are putting »\n» after each wanted property, so that each is printed in a new line.

Conclusion

Using the terminal, it’s easy to find file properties, using ls with any of its accepted flags or via stat .

In this short guide, we’ve taken a look at how to display file properties using Linux.

Источник

Оцените статью
Adblock
detector