apt is passing off info to the back end package database and packages can be marked as "selected for install" etc. This database lists only the package name, which is usually only part of the file name. The
./x_something.deb is a filename reference, not a package name, and the
./ part of it is a relative path reference.
A better real example might be for Google Chrome.
google-chrome-stable_current_amd64.deb plus whatever path reference you have to it.
Package name is actually
google-chrome-stable. The version info (
current) and architecture of the build (
amd64) aren't needed in the package name - architecture is controlled by other parts of the package management subsystem, and the version number could/will/would change to numeric, and is referenced in the various
Release and other index files that the
apt family fetches (based on
sources.list contents) and parses on
apt-get update or
ivan@darkstar:~$ dpkg -l | grep google-chrome
ii google-chrome-stable 76.0.3809.100-1 amd64 The web browser from Google