An inode is the filesystem record that stores a file’s metadata, including its type, permissions, owner, timestamps, link count and inode number. Linux tracks inode capacity separately from data-block capacity, so a filesystem can have free gigabytes yet return “No space left on device” when its inode pool is exhausted. Use df -i to measure inode capacity for a filesystem, df -h to measure bytes, stat to inspect one file, and a bounded find scan to locate directories containing unusually many entries.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
What an inode contains
Linux’s inode(7) documentation gives the essential definition: “Each file has an inode containing metadata about the file.” The inode is not the filename and it is not the file’s complete contents. It is the filesystem record that describes the object and tells the filesystem how to handle it.
As an Amazon Associate I earn from qualifying purchases.
Typical inode metadata includes:
- File type, such as a regular file, directory, symbolic link or device.
- Permission and mode bits.
- Owner and group IDs.
- Access, modification and status-change timestamps.
- The number of hard links referring to the inode.
- The inode number used to identify the record within that filesystem.
The inode also contains filesystem-specific information needed to locate file data. In ext4, inode metadata includes timestamps, block maps and extended attributes. The data blocks hold the file’s contents; the inode describes those blocks and the file’s other attributes.
How a filename reaches an inode
A directory is a filesystem object whose contents include directory entries. Each entry maps a human-readable name to an inode number. When a process opens /var/log/example.log, Linux walks the directory entries for /, then var, then log, until it finds the name example.log and the inode number associated with it.
#1 Best Overall
- [Ultra-Lightweight Ear Buds Designed for Small Ears] Each earbud weighs only 3.7g and features a compact, ergonomic in-ear design made especially for small ears. Secure, low-profile, and comfortable for workouts, all-day wear or overnight sleeping.The ultra-slim profile sits flush in your ear with no hard edges poking or rubbing, so you can even sleep on your side without discomfort.
- [Immersive Stereo Sound with TOZO OrigX Technology] TOZO OrigX tuning delivers clear vocals, balanced mids, and natural stereo sound for music, podcasts, and videos.
- [Long Battery Life for Daily Use] Get up to 7 hours of playtime on a single charge, with up to 32 hours total using the charging case—ideal for workdays, commuting, and extended listening sessions.
- [Bluetooth 5.3 & Stable Connection] Bluetooth 5.3 provides fast pairing, stable wireless performance, and reduced dropouts as you move around home or office.
- [Deep Bass with Clear Vocals] High-performance drivers produce punchy bass while keeping vocals clean and detailed for everyday listening.
This separation explains why the same inode can have more than one name. A hard link creates another directory entry pointing to the existing inode; it does not create a second inode for the same file. The inode’s link count records how many hard-link names refer to it.
Inode numbers are local to a filesystem
An inode number is guaranteed to be unique only inside its own filesystem. Two mounted filesystems can therefore contain objects with the same numeric inode value. Always interpret an inode number together with the filesystem or mount point reported by commands such as df -T.
Recommended Free Tools
Why inode exhaustion can look like a full disk
Every filesystem has at least two distinct capacity questions: how many data blocks remain for file contents, and how many inodes remain for filesystem objects. A large video may consume many data blocks but only one inode. A directory containing hundreds of thousands of tiny files may consume relatively few data blocks while consuming a very large number of inodes.
When no inodes remain, creating a new file, directory, socket or similar filesystem object can fail even though a byte-oriented check still shows free space. This is the classic situation in which df -h appears healthy while an application reports “No space left on device.” The error identifies a capacity failure, but it does not by itself say whether bytes or inodes are exhausted; check both resources.
Rank #2
- 【IP68 Waterproof Multifunctinal Smart Watch】Torjalph fitness activity tracker smart watch is IP68 waterproof technology ,you can wear it when swimming,handwashing,it's rain-proof which means that you perform multiple exercise modes outside without worrying about sweat or rain corroding your fitness smart watch,and this watch equipped with a 230 mAh large capacity battery magnetic charging ,and this sports activity tracker watch can be used 5-7 days If fully charged.
- 【Larger 1.83'' Full Screen Watch & Multi-dial Selection】1.83 inch full HD color touch screen smart watch for men / women provides excellent 240*284 resolution image quality ,This Bluetooth smart watch offers a better touch experience and remarkable immersion and ,more than 200 watch faces for you to choose from App"Da Fit ", you can change the dial style according to your mood to wear keeping the world on your wrist
- 【Accurate Activity Tracker Smart Watch 】sports watch activity tracker uses sweat and dust resistant breathable silicone strap, our Fitness Tracker Smart Watch for Android iOS Phones supports 12 sports modes,walking,running,bicycle,swimming,badminton,basketball,football,rope skipping. This bluetooth calls smart watch for men women is lightweight and stylish, bringing more convenient and relaxing sports experience while also providing more protection.
- 【Your 24 Hour Personal Daily Health Monitor】Fitness watch for women men full touch screen IP67 waterproof bluetooth smartwatch for Android iOS Phones with heart rate blood pressure monitor multifunction Andriod smart watch with steps counter sleep monitor sports fitness watch, monitoring blood oxygen saturation allows you to understand your physical condition in real time to track fitness progress ,to know your health status in time.
- 【More Functions Bluetooth Call Smart Watch】This fitness activity smart watch full screen for iPhone and Android phones includes a bunch of new features including:The bluetooth smart watch can hang up the phone, receive and display WhatsAPP /Text /Facebook /Twitter /Messenger reminder.Support sedentary reminder, alarm clock, stopwatch, timer,weather information,music control, remote camera control compatible with Android 5.0 and above or iOS 9.0 and above smartphones.
Filesystem implementations differ. Some allocate inodes dynamically as needed, while others create a fixed inode pool when the filesystem is made. The columns in df -iT, and the filesystem type shown there, determine how to interpret the available and total inode counts. Do not assume that every filesystem manages inode capacity in the same way.
Check inode usage for a filesystem
GNU Coreutils’ df command switches from block accounting to inode accounting with -i (or --inodes). These are the most useful forms:
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →| Command | Scope | What it adds |
|---|---|---|
df -i |
All filesystems visible to the command | Inode totals, used, free and percentage |
df -i /var |
The filesystem containing /var |
Targets one path without requiring you to know its mount point |
df -iT /var |
The filesystem containing /var |
Adds the filesystem type |
df -il |
Visible local filesystems | Excludes non-local filesystems from the report |
Read the output fields
A typical report has columns equivalent to:
- Inodes or
itotal: total inode capacity reported for the filesystem. - IUsed or
iused: inodes currently allocated. - IFree or
ifree: inodes not currently allocated. - IUse% or
ipcent: percentage of inode capacity in use. - Mounted on: the mount point through which the filesystem is accessed.
IUse% is an inode percentage, not a percentage of disk bytes. A value near 100% means the filesystem is close to exhausting its inode supply. It does not tell you which directory created the pressure, so a second diagnostic step is required.
A reliable first check
- Run
df -iTto see inode use and filesystem type for every visible filesystem. - Find the row whose
IUse%is high or whoseIFreecount is unexpectedly small. - Use the mount point from that row, or pass a known path on it, for example
df -i /var. - Run
df -h(or the portable, fixed-formatdf -P) for the same path to compare byte usage. - Keep the affected mount point for the directory scan; scanning a different filesystem will not explain the reported inode pressure.
A path argument selects the filesystem containing that path. For example, if /var is a separate mount, df -i /var reports that filesystem rather than the root filesystem. Mount visibility, permissions and distribution-specific output formatting can affect what appears in a report.
Rank #3
- [Low Noise High Fidelity] New bee guitar cord with 22AWG oxygen-free-copper center conductors provides enhanced signal transfer, the PVC insulation material and the high-density stranded copper double shield provide noise rejection for quiet operation
- [Ideal for Choice] New bee 1/4 straight and right angle metal connectors, ensures a secure connection in any instrument, pedal, or amp jack. L shape great fro on stage guitar stands
- [Wide Compatible] Suitable for mixer, power amplifier, microphone, effector, decoder, equalizer, electoronic organ, electric guitar, electric bass and other electronic equipments. Widely used in the installation of smart home, karaoke speaker, professional stage audio, etc
- [Easy Disassemble] Making incidental repairs quick and easy! Very nice, flexible cable
- [Dont Hesite to Order] 24 hours customer services and professional technology team are standing by
Compare inode pressure with byte pressure
| Question | Command | Resource shown | Useful fields |
|---|---|---|---|
| How many filesystem objects can still be created? | df -i /path |
Inode capacity | Inodes, IUsed, IFree, IUse% |
| How much content space remains? | df -h /path |
Data blocks, shown in human-readable units | Size, used, available and use percentage |
| How do I get a script-friendly block report? | df -P /path |
Data blocks in a standardized one-line-per-filesystem format | Filesystem, 1024-blocks, used, available, capacity and mount point |
| What filesystem implementation am I examining? | df -T /path |
Filesystem type alongside block usage | Type and mount point |
Interpret the two percentages together
- High
IUse%, lower byte use: many filesystem objects exist, and small files or directories are the leading suspect. - Lower
IUse%, high byte use: data blocks, rather than inode records, are the tighter resource; look for large content on that mount. - Both percentages high: the filesystem has substantial object and content pressure. Identify the inode-heavy directories before removing anything, then address the byte-heavy data separately.
- Both percentages appear low: the reported failure may involve a different mount than the one checked, or a limit outside these two aggregate counters. Recheck the exact path used by the failing service and confirm its mount.
The two commands answer different questions. Neither one identifies the directory responsible for the count, and neither one should be treated as a substitute for the other when diagnosing an “out of space” report.
Inspect one file’s inode with stat
Use stat when the question concerns one path rather than an entire filesystem:
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →stat /path/to/file
The default display includes the file type and permissions, owner and group, size, timestamps, link count and inode number, along with other filesystem metadata available on that system. The exact presentation can vary by operating system and stat implementation.
For a compact, script-friendly result, request selected fields:
Rank #4
- Digital Family Calendar: BSIMB digital calendar wall touch screen puts an end to your chaotic life. Designed for busy families, the digital calendar keeps you organised and in step with your family. Assign different colours and tasks to each family member to make family scheduling easier and more intuitive.
- Easy Setup and Auto-Sync: Plug in, connect to WLAN and auto-syn your electric calendar in minutes. Digital wall calendar compatible with Google calendar, iCloud calendar, Outlook calendar, Cozi calendar and Yahoo calendar. Add events directly on the device or through the ecalendar app. Electronic calendar stays current whether you're at work or traveling—no manual updates needed.
- All-In-One Home Assistant: Smart calendar builds habits and encourage independence with personalised chores. Display daily meal plan to reduce the daily ‘What's for dinner?’ stress. To-do lists keep track of everything you want. Turning chores into valuable achievements with stars and rewards, making life easier and more enjoyable.
- Manage Anytime Anywhere: BSIMB electronic calendar for family stay connected with the powerful ecalendar app. Access and manage your digital wall calendar anytime, anywhere with free features like stars & rewards, photo screensaver, chore charts, meals plans, to-do lists etc. Electronic planner paid features like Magic Import tailor advanced tools for users with special needs.
- Stay in Touch with Loved Ones: Share photos or videos from your phone to electronic wall calendar with app, instantly update your life moment, and keep in touch with your family, especially those who are far away; you can also surprise your smart calendar digital wall by sending him a wish card; it's also great for keeping tech-illiterate elders in touch with the youngsters.
stat -c '%i %h %s %n' /path/to/file
| Format field | Meaning |
|---|---|
%i |
Inode number, unique within the file’s filesystem |
%h |
Hard-link count |
%s |
File size in bytes |
%n |
Name supplied to stat |
What a hard link changes
If two names are hard links to one file, stat reports the same inode number for both names and a link count greater than one. Adding another hard-link name consumes a directory entry but does not allocate another inode for the file’s contents. Removing one name reduces the link count; the inode and data remain available through the other names until the final link is removed and no process still has the file open.
Use stat and df -i for different scopes
| Tool | Scope | Best use | Output style |
|---|---|---|---|
df -i |
Whole filesystem selected by a path or mount | Measure inode capacity and detect exhaustion | Aggregate totals and percentages |
stat |
One named filesystem object | Verify inode number, links and metadata | Per-file or per-directory fields |
Find directories with unusually many entries
Once df -i /mountpoint confirms high inode use, count directory entries on that same filesystem. The following pipeline reports the directories that occur most often as the parent of discovered entries:
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsfind /var -xdev -printf '%hn' 2>/dev/null
| sort | uniq -c | sort -nr | head
What each part does
find /varwalks the selected tree. Replace/varwith the mount path identified bydf -i.-xdevstops the walk at filesystem boundaries, so a nested mount is not silently included in the count.-printf '%hn'prints the parent directory for each entry found.2>/dev/nullsuppresses permission-denied diagnostics so they do not mix with the count; it also means inaccessible areas will not be represented.sort | uniq -cgroups identical parent paths and counts them.sort -nrorders the largest counts first.headshows the leading results for an initial triage pass.
The command is a locator, not a deletion tool. A high count identifies where to investigate; it does not establish that every entry is disposable. Repeat the scan with a longer head value or inspect a reported directory directly when several locations are close.
Stay on the filesystem you measured
Do not replace the mount path with an unrelated directory. If df -i /var reports a separate filesystem, scan /var with -xdev. If the pressure is on a mounted data volume, scan that volume’s mount point. Without the boundary option, a directory tree can cross into another filesystem and make the results appear to implicate the wrong storage area.
Best Value
Investigate the likely inode hotspots
After the count identifies a directory, inspect its purpose, ownership and recent growth before changing anything. Common sources of inode-heavy trees include:
- Log rotation failures: repeated log files can accumulate when rotation or retention does not operate as intended.
- Package caches: cached package fragments and metadata can create many entries.
- Mail queues: queued messages are often represented by individual files.
- Temporary-file trees: applications may leave short-lived or abandoned files behind.
- Container layers: image and writable-layer storage can contain large numbers of small filesystem objects.
- Application-generated files: workloads that create one file per event, request or record can consume inodes faster than bytes.
These categories are starting points, not proof of a fault. Use directory listings, ownership information and the service’s documented storage layout to establish which component owns the entries. An inode count alone cannot distinguish a legitimate workload from a failed cleanup job.
Confirm before cleanup
- Check that the directory is on the filesystem whose
IUse%is high. - Identify the service, package manager or application responsible for the path.
- Determine whether the files are active data, a queue, a cache or temporary output.
- Use the owning service’s documented retention, purge or rotation process rather than deleting files blindly.
- Record the before-and-after
df -iresult so you can verify that the intended filesystem’s free inode count changed.
Recover safely when free inodes are scarce
When an inode pool is nearly exhausted, the immediate objective is to remove or consolidate only entries that are known to be unnecessary. Start with the highest-count directory from the bounded scan, but do not assume that the largest directory is safe to empty. Queues, logs and container data can be operationally important even when they look like disposable small files.
- Save the affected mount point and its current
df -iTanddf -houtput. - Inspect the top directories from the
findreport and establish ownership. - Apply the responsible service’s supported cleanup, queue-drain, cache-prune or log-rotation procedure.
- Remove individual files only when their purpose and retention status are understood.
- Run
df -ion the same mount again and verify thatIFreeincreased andIUse%fell. - Repeat the bounded scan if the percentage remains high; a second hotspot may be consuming the remaining inode supply.
Deleting one additional name for a hard-linked file does not necessarily free an inode: the inode remains while another hard-link name exists. Conversely, removing a directory entry can free an inode only when it is the final name for that object and the filesystem can reclaim it. Measure the result rather than assuming that a deletion produced capacity.
Do not confuse a byte cleanup with an inode cleanup
Removing a few very large files can substantially lower df -h usage while barely changing IUse%. Removing many tiny, unnecessary files can produce the opposite result. Choose the cleanup target based on the exhausted resource shown by the matching df command.
Practical command sequence
For a repeatable first response to an “out of space” report, run the following sequence and substitute the path used by the failing program:
Free tools Windows power users keep installed
One-click scans. No signup required.
# 1. Compare inode capacity and filesystem type
df -iT /var
# 2. Compare byte capacity for the same filesystem
df -h /var
# 3. Inspect a suspected file or directory
stat /var/log/example.log
# 4. Locate parent directories with many entries without crossing mounts
find /var -xdev -printf '%hn' 2>/dev/null
| sort | uniq -c | sort -nr | head
In a script, avoid parsing the human-readable output from df -h when stable columns matter; use a predictable format such as df -P for block usage and retain df -i for inode fields. Always associate the result with the filesystem type and mount point printed by the command.
Quick Recap
Limits and interpretation cautions
df -ireports the filesystem selected by its path or mount point; it does not attribute inode use to a directory.findcan only count entries it can read. Redirecting errors hides permission diagnostics, so investigate whether protected directories were skipped.-xdevis essential for a mount-specific diagnosis because directory trees can contain other mounted filesystems.- Command output and available options vary with filesystem type, distribution and utility version.
- Inode numbers should not be compared across mounts as though they were globally unique.
- A high inode percentage is a capacity signal, not permission to delete data. Ownership, retention and service state must be checked first.
What to remember
- An inode stores metadata and points the filesystem toward a file’s data; the filename is supplied by a directory entry.
- Inode capacity and data-block capacity are separate. Check
df -ianddf -hfor the same path. - Use
statfor one object’s inode number, link count and metadata. - Use
find -xdevwith a count-and-sort pipeline to locate inode-heavy directories without crossing into another filesystem. - Investigate ownership and service purpose before cleanup, then rerun the measurements to verify recovery.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




